1.png2.png3.png4.png5.png
Promise后的then在处理请求时可以返回一个new Promise,这个Promise中的resolve将传给下一个链式调用的then,
return new Promise(resolve => {resolve()}) 可以简写为 return Promise.resolve() ,这是开放的api可以直接调用。

6.png7.png8.png
链式调用then中的 return Promise.resolve() 还可以直接简写为 return ,return返回的数据将自动被包装为一个promise对象,传给下一个链式调用的then。

Promise.all方法

这个方法用于同时需要做多个请求的情况,并且是否执行下一步取决于这些请求是否都已经收到,此时就可以用Promise.all来统一判断这些请求是否完成。
Promise.all()方法传入一个数组,数组的每一项都可以是一项网络请求,图中以ajax请求为例,当请求成功时调用resolve封装数据,只有当所有数据都完成时(resolve或者reject)才调用then
then函数中可以拿到一个结果数组,数组的每一项就是resolve保存的数据,按照resolve调用的顺序在数组中排列,这样就可以在then里同时处理多个数据了。
Promise.all实际上需要传入一个可以迭代的对象,例如数组,列表,元组,向量等,常用数组。
9.png