Почему обещания пишутся как "then (..). Catch (..)"? - PullRequest
0 голосов
/ 05 ноября 2018

Я новичок в 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!!');
});

Какая логика стоит за этим? Большое вам спасибо!

Ответы [ 2 ]

0 голосов
/ 05 ноября 2018

Используя это:

getIDs
.then(IDs => {
    console.log(IDs);
})
.catch(error => {
    console.log('Error!!');
});

вы также ловите ошибки предыдущих then функций, когда:

getIDs.then(IDs => {
    console.log(IDs);
});
// note: access getIDs again!
getIDs.catch(error => {
    console.log('Error!!');
});

вы ловите только ошибки от getIDs.

0 голосов
/ 05 ноября 2018

Предложение then создает новое обещание, поэтому вызов catch для этого последующего обещания может перехватывать разные исключения.

Во втором фрагменте вы ловите исключения из первоначального getIDs только обещания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...