es6 promise then對異常處理的方法


  1. then()里有兩個回調函數,第一個是成功后(resolve返回)的回調function(data) {}, 另一個是失敗后(reject返回)的回調function(err) {},異常發生時可以放在第二個回調里面處理。

  2. 也可以在then后面加.catch,在這里面進行異常處理

建議用2

function test(flag) {
return new Promise((resolve, reject) => {
if (flag == 1) {
resolve("success");
} else {
reject("fail");
}

})

}

function test2 () {
return new Promise((resolve, reject) => {
test(2).then((data) => {
console.log(data);
resolve(data);
}, (err) => {
console.log(err);
reject(err);
});
})

}

//錯誤寫法
//function test2 () {
// return new Promise((resolve, reject) => {
// test(2).then((data, err) => {
// (data) => {
// console.log(data);
// resolve(data);
// }, (err) => {
// console.log(err);
// reject(err);
// }
// });
// });
//}

// 建議的寫法
function test3 () {
return new Promise((resolve, reject) => {
test(2).then((data) => {
console.log(data);
resolve(data);
}).catch((err) => {
console.log(err);
reject(err);
});
});

}

test2().then((data) => {
console.log(data);
})

test3().then((data) => {
console.log(data);
})
阮一峰老師的es6教程里也有如下解釋:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM