Promise初尝试
promise.ts
export function showAlert() {
console.log("开始调用showAlert");
return new Promise((reslove, reject) => {
try {
console.log("开始执行showAlert");
setTimeout(() => {
console.log("执行showAlert完成");
reslove();
}, 3000);
} catch (e) {
reject(e);
}
});
}
export function showAlert2() {
console.log("开始调用2");
return new Promise((reslove, reject) => {
try {
console.log("开始执行2");
setTimeout(() => {
console.log("执行2完成");
reslove();
}, 5000);
} catch (e) {
reject(e);
}
});
}
页面
-
import { showAlert, showAlert2 } from "../promise.ts";
-
打印数据
-
开始调用showAlert
-
开始执行showAlert
-
开始调用2
-
开始执行2
-
执行showAlert完成
-
已经结束
-
执行2完成
-
2结束
-
两个都调用
// 总共经过5秒
onSubmit() {
showAlert()
.then(res => {
console.log("已经结束");
})
.catch(err => {
console.log(err);
});
showAlert2()
.then(res => {
console.log("2结束");
})
.catch(err => {
console.log(err);
});
} -
异步调用
// 异步执行5秒完成
async onSubmit() {
Promise.all([showAlert(), showAlert2()]).then(() => {
console.log("两个执行完成");
});
} -
async await
// 5秒完成
async onSubmit() {
const result = await Promise.all([showAlert(), showAlert2()]);
console.log("async await 执行完成");
} -
await
// 8秒完成
async onSubmit() {
await showAlert();
await showAlert2();
console.log("await完成");
}

浙公网安备 33010602011771号