Promise 构造函数包含2个重要的参数 resolve 和 reject。
resolve 可以理解为异步函数运行成功的标注函数,而 reject 【 译为 拒绝 】可以理解为异步函数运行失败的标注函数。
一个完整的 Promise 应该同时定义 resolve 和 reject, 然后通过 then 执行成功逻辑,使用 catch 来执行失败逻辑。
<script>
console.log('主线程开始');
var p = new Promise((resolve, reject)=>{
setTimeout(()=>{
let randNumber = Math.random();
console.log(randNumber);
if(randNumber < 0.5){
reject('执行失败');
return ;
}
let result = 0;
for (let i = 0; i < 900000000; i++){
// your code
result = i;
}
resolve(result);
}, 800);
});
console.log(p);
// 异步函数执行完毕后执行此处的逻辑
p.then((res)=>{
console.log('异步函数执行成功');
console.log(res);
}).catch((error)=>{
console.log(error);
});
console.log('其他逻辑');
</script>