Promise的使用
开发中需要先进行一部分操作之后再进行操作,这时候
Promise 对象用于表示一个异步操作的最终完成 (或失败)及其结果值。
promise实例有三种状态:pending(待定),fulfilled(已执行),rejected(已拒绝)。fulfilled和rejected又可以说是已成功和已失败,这两种状态又归为已完成状态。调用resolve和reject能将分别将promise实例的状态变成fulfilled和rejected,只有状态变成已完成(即fulfilled和rejected之一),才能触发状态的回调。举个例子:
let p = new Promise((resolve, reject) => {
// 做一些操作
if (判定条件) {
resolve()
//改变p的状态为fulfilled
} else {
reject()
改变p的状态为rejected
}
})
p.then(() => {
console.log("判定生效,p的状态变为fulfilled");
// 如果p的状态变为fulfilled,执行
}, () => {
console.log("判定失败,p的状态变为rejected");
// p的状态变为rejected,执行
})
接收到resolve或者reject之后才会执行.then的成功或失败的方法。(resolve 和 reject格式一样,reslove(传下去的参数 字符串格式或者对象))
所有async开头的函数返回值都是Promise<返回值类型>,async是配合await的,比如a();b();两个方法,我想让a执行结束之后我再执行b,如果a是个异步程序的话,有可能是先进入a但是a没有执行完,就走了b,所以就可以
async c() {
await a();
b();
}
这样就是先等a执行完了(等进入.then还是等.then完全结束还存疑,经过测试后再更新),再去执行b。