06. Chaining Promises
Given two Promises P and Q, the following code produces a new Promise that executes Q after P is fulfilled:
P.then(() => Q);Note that this is similar to the semicolon for synchronous code: Sequential composition of the synchronous operations f() and g() looks as follows:
f();
g();Если результатом выполнения P.then(onFulfilled, onRejected) является новый объект Promise Q, то на нем можно продолжать вычисления, вызывая Q.then(onFulfilled, onRejected).
Resolve with value
Resolve promise with a normal value:
const P = Promise.resolve("Success.");
const Q = P.then(value => {
console.log(value); // Success.
return 42;
});
Q.then(value => {
console.log(value); // 42
});Resolve with thenable
Если возвращаемый из Promise объект R имеет метод then, то возвращаемый Promise Q делегирует then-реакцию на R:
Resolve with error
Если значение R возвращается из catch то оно становится нормальным начальным значением по умолчанию для Q:
Выбрасываемые исключения из P при любой реакции делегируются на Q.catch:
Может быть несколько последовательных реакций then. Тогда ошибка передается до тех пор, пока не будет найден обработчик на одном из производных Promise:
Last updated
Was this helpful?