Promise 对象是一个代理对象
new Promise( function(resolve, reject) {...} /* executor */ );
异步任务顺利完成时,会调用 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
一秒后返回一个执行结果
一秒后返回一个执行结果
*/
参考