4.20. Promise 的静态⽅法
promise的三个状态: pending(默认) fulfilled(成功) rejected(失败)
1. resolve函数被执⾏时, 会将promise的状态从 pending 改成 fulfilled 成功
2. reject函数被执⾏时, 会将promise的状态从pending 改成 rejected 失败
Promise.reject()
Promise.resolve()
并发的任务 Promise.all([promise1, promise2, promise3]) 等待原则, 是在所有promise都完成后执⾏, 可以⽤于 处理⼀些
Promise.race([promise1, promise2, promise3]) 赛跑, 竞速原则, 只要三个promise中有⼀个满⾜条件, 就会执⾏.then(⽤的较少)
4.21. async/await是什么?
ES7 标准中新增的 async 函数,从⽬前的内部实现来说其实就是 它基于 Promise,并与所有现存的基于Promise 的 API 兼容。 async 关键字 1. Generator 函数的语法糖。
async 关键字⽤于声明⼀个异步函数(如 async function asyncTask1() {...} ) 2. async 会⾃动将常规函数转换成 Promise,返回值也是⼀个 Promise 对象 3. async 函数内部可以使⽤ await await 关键字
1. await ⽤于等待异步的功能执⾏完毕
2. var result = await someAsyncCall() await 放置在 Promise 调⽤之前,会强制async函数中其他代码等待,直到 Promise 完成并返回 结果
3. await 只能与 Promise ⼀起使⽤
4. await 只能在 async 函数内部使⽤