Promise 对象是一个代理对象
new Promise( function(resolve, reject) {...} /* executor */ );
三个状态
图片来自http://liubin.org/promises-book异步任务顺利完成时,会调用 resolve 函数返回结果值;
异步任务失败且时,会调用reject 函数返回失败原因。
它们可以被链式调用
Promise.prototype.then 和 Promise.prototype.catch 方法返回promise 对象
使用示例
// 定义一个Promise let promise = new Promise((resolve, reject) => { setTimeout(() => { resolve("一秒后返回一个执行结果") }, 1000) }) // 状态 console.log(promise); // Promise { <pending> } // 使用链式调用 promise.then((value) => { console.log(value); }) // 使用async / await async function func() { const value = await promise; console.log(value); } func() console.log("end"); /** end 一秒后返回一个执行结果 一秒后返回一个执行结果 */
参考