Артефакты шрифта с включенным ClearType

Когда обещание будет разрешено / отклонено, оно вызовет его обработчик успеха / ошибки:

var promiseB = promiseA.then(function(result) {
   // do something with result
});

Метод then также возвращает обещание: promB, которое будет разрешено / отклонено в зависимости от возвращаемое значение из обработчика успеха / ошибки из обещания.

Есть три возможных значения, которые могут быть возвращены обработчикам успеха / ошибок, которые повлияют на результат результата:

1. Return nothing --> PromiseB is resolved immediately, 
   and undefined is passed to the success handler of promiseB
2. Return a value --> PromiseB is resolved immediately,
   and the value is passed to the success handler of promiseB
3. Return a promise --> When resolved, promiseB will be resolved. 
   When rejected, promiseB will be rejected. The value passed to
   the promiseB's then handler will be the result of the promise

Вооружено это понимание, вы можете понять следующее:

promiseB = promiseA.then(function(result) {
  return result + 1;
});

Затем вызов немедленно возвращает обещаниеB. Когда обещание будет разрешено, оно передаст результат, чтобы обещать успешный обработчик. Поскольку возвращаемое значение является результатом promA + 1, обработчик успеха возвращает значение (вариант 2 выше), так что обещаниеB будет немедленно устранено, а обработчик успеха пообещания будет передан с обещанием результата + 1.

0
задан gambiting 20 March 2019 в 13:12
поделиться