我是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承诺中捕获异常。

09-25 16:02