Define:
.new promise传入的函数里面是立即执行的
. promise 是一个对象,里面有三个状态,完成状态对应then里面的一个function,错误状态对应第二个function
Then define
. 它返回一个promise,它的值是由return里面的函数决定.
. 它可以接受两个函数
catch define
. 返回的也是peomise
. 只用于前面错误的catch
all define
. 传的值是一个数组,数组里面可以是任意值
. 值会按顺序依次变成一个数组,传入下一个then
resolve define:
. 返回一个fullfill的promise
. 里面的值可以是promise,普通值,包含then方法的对象
Detail:
. 在function里面,resolve和reject 谁先执行了,就谁先改变promise状态,只有先被执行的状态才能传递data
. 如果在function里面,没有返回return会继续执行下去
. 只要有then程序就会一直执行下去
. then是可以被拆解的,如被foreach拼接then
. 异步结束后,它是同过then来交回执行权
Promise.all
只有里面的promise的状态都变为fulfilled,allPromise状态才会变为fulfilled
Inversely, as soon as one of them become reject, allPromise will become reject.
Then/Catch
it also will return a promise
Application:
. 异步等一下再异步,也是可以的。就是说promise的状态为complete,也是可以等一下,再执行。这是需要settimeout
. queue
用 foreach 或 reduce,推荐reduce