resolve 和 reject

Promise 构造函数包含2个重要的参数 resolve 和 reject。

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>