理解Promise的then

Promise,ES6中定义的规范,现在都9102年了,大家基本都会用Promise,但对于Promise中then,有没有精确地认知呢,请往下看。

官方文档是这样定义的:

一个 promise 必须提供一个 then 方法以访问其当前值、终值和据因。

promise 的 then 方法接受两个参数:

promise.then(onFulfilled, onRejected)

Todo:这里只介绍onFulfilled。

onFulfilled 和 onRejected 都是可选参数。

如果 onFulfilled 不是函数,其必须被忽略

如果 onFulfilled 是函数:

当 promise 执行结束后其必须被调用,其第一个参数为 promise 的终值

在 promise 执行结束前其不可被调用

其调用次数不可超过一次

用通(ren)俗(hua)的话来说:

then方法提供一个供自定义的回调函数,若传入非函数,则会忽略当前then方法。

回调函数中会把上一个then中返回的值当做参数值供当前then方法调用。

then方法执行完毕后需要返回一个新的值给下一个then调用(没有返回值默认使用undefined)。

每个then只可能使用前一个then的返回值。

 

Promise规范:https://promisesaplus.com/

posted @ 2019-11-21 17:07  雨雾漫步  阅读(3402)  评论(0编辑  收藏  举报