Promise

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

你可能感兴趣的:(Promise)