Open KinoOfficial opened 1 year ago
let promise = new Promise(function(resolve, reject) { // … 异步操作的代码 if (/ 异步操作成功 /) { resolve(value); } else { reject(error); } });
Promise.all const p = Promise.all([p1, p2, p3]); 只有p1、p2、p3的状态都变成fulfilled,p的状态才会变成fulfilled,此时p1、p2、p3的返回值组 成一个数 组,传递给p的回调函数。
let p1 = new Promise((resolve, reject) => { resolve('成功了') }) let p2 = new Promise((resolve, reject) => { resolve('success') }) let p3 = Promise.reject('失败') Promise.all([p1, p2]).then((result) => { console.log(result) //['成功了', 'success'] }).catch((error) => { console.log(error) }) Promise.all([p1,p3,p2]).then((result) => { console.log(result) }).catch((error) => { console.log(error) // 失败了,打出 '失败' })
Promise.race const p = Promise.race([p1, p2, p3]); 只要p1、p2、p3之中有一个实例率先改变状态,p的状态就跟着改变。那个率先改变的 Promise 实例 的返回值,就传递给p的回调函数。
Promise 是异步(async)编程的一种解决方案
Promise有三种状态