<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Promise函数</title>
</head>
<body>
<script>
// 示例一
new Promise(function (resolve, reject) {
console.log(11);
// 必须有个resolve或reject不然处于pending状态不往下执行
if (true) {
resolve(22);
} else {
// 直接跳转到catch
reject("error");
}
}).then(function (value) {
console.log(value);
return 33;
}).then(function (value2) {
console.log(value2);
}).catch(function (err) {
console.log(err);
}).finally(function () {
console.log("finally");
})
// 示例二
// 构造promise函数
function print(delay, message) {
return new Promise(function (resolve, reject) {
setTimeout(function () {
document.write(message);
resolve();
}, delay);
});
}
// 构造异步函数
async function asyncFunc() {
// 一个promise函数运行结束再继续运行下一个。(我理解为异步中的函数同步执行)
await print(5000, "1");
// 上一个运行完后10s才打印输出2
await print(10000, "2");
await print(15000, "3");
}
// 输出:112233
asyncFunc();
asyncFunc();
</script>
</body>
</html>
参考:https://www.runoob.com/js/js-promise.html
【如有不对,请指正】