我是JavaScript新手。当我们使用.then和.catch时,我可以知道为什么我们这样写
const getIDs = new Promise((resolve, reject) => {
setTimeout(() => {
resolve([523, 883, 432, 974]);
}, 1500);
});
为什么这样写:
getIDs
.then(IDs => {
console.log(IDs);
})
.catch(error => {
console.log('Error!!');
});
而不是这样的:
getIDs.then(IDs => {
console.log(IDs);
});
// note: access getIDs again!
getIDs.catch(error => {
console.log('Error!!');
});
它背后的逻辑是什么?非常感谢!
最佳答案
then
子句创建一个新的Promise,因此在此后续Promise上调用catch
可以捕获不同的异常。
在第二个片段中,您仅从初始getIDs
承诺中捕获异常。