04.i Promise.then()
Promise.then(onFulfilled, onRejected)
позволяет установить обработчики реакций Promise и всегда возвращает новый Promise, находящийся в состоянии pending до тех пор, пока его обработчики не отработают.
Вызов обработчиков происходит асинхронно.
Вызов произойдет когда стек вызовов JS опустеет.
Если ни один из аргументов не был передан, то будет Promise без обработчиков, но ошибки не будет.
Resolve with Value
Если обработчик возвращает значение, то Promise переходит в состояние fulfilled
с этим же значением:
Resolve with Error
Если обработчик выбросил исключение, то Promise переходит в состояние rejected
с этим же исключением:
Resolve with Promise
Если обработчик возвращает Promise установленный в состояние fulfilled
, то Promise перешел в состояние fulfilled
со значением равным значению установленного Promise:
Если обработчик возвращает ожидающий Promise, то текущий Promise так же будет находится в состоянии ожидания до тех пор, пока нижележащий Promise не будет установлен.
Если обработчик возвращает Promise установленный в состояние rejected
, то Promise переходит в состояние rejected
с той же ошибкой, что и возвращенный Promise:
Last updated
Was this helpful?