promise代表一个异步操作
promise有三种状态
pending 正在进行的状态,还未完成
fulfilled代表成功了
reject代表操作失败了
这种状态一旦改变就不会再变
promise无法取消,一旦建立就会立即执行,无法中途取消
操作完成时,调用resolve()函数,()里面可以传入数据,传递给then后面的函数里面
失败的情况
操作完成时,调用reject()函数,()里面可以传入数据,传递给then后面的第二个函数里面
/* 一秒输出…
间隔两秒输出…
间隔三秒输出… */
// 多次循环调用
const p = new Promise((resolve, reject) => {
setTimeout(() => {
console.log("A");
resolve();
}, 1000)
})
.then(() => {
return new Promise((resolve, reject) => {
setTimeout(() => {
console.log("B");
resolve();
}, 2000)
});
})
.then(() => {
setTimeout(() => {
console.log("C");
}, 2000)
})
使用acync await
async函数内部,有0个或则多个await表达式
async函数表示函数内部有异步操作
async function f1() {
try {
const x = await getData(2000);
console.log(x);
} catch (error) {
console.log("404");
}
}
f1()