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 { }
// 使用链式调用
promise.then((value) => {
console.log(value);
})
// 使用async / await
async function func() {
const value = await promise;
console.log(value);
}
func()
console.log("end");
/**
end
一秒后返回一个执行结果
一秒后返回一个执行结果
*/
参考
- Promise 对象用于表示一个异步操作的最终完成 (或失败), 及其结果值.
- 使用 Promise