通过例子理解Promise

本文深入讲解ES6中Promise对象的基本用法,包括如何创建及运行Promise,并通过具体示例介绍了如何处理成功的回调(resolve)、失败的回调(reject)以及异常处理(throw)。此外还展示了Promise链式调用的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于ES6语法 。

创建Promise

// 能正常完成的例子,任务成功做完是调用 resolve,参数是一个字符串消息
let promiseOK = new Promise(
    (resolve, reject) => {
        // 这里是任务逻辑
        resolve("成功完成");
    }
);

// 不能正常完成的例子,任务失败,调用 reject, 参数是一个字符串消息
let promiseReject = new Promise(
    (resolve, reject) => {
	    // 这里是任务逻辑
        reject("无法完成");
    }
);

// 任务执行过程中遇到异常的例子,没有调用 resolve, 也没有调用 reject, 
// 只是使用 throw 抛出错误消息
let promiseException = new Promise(
    (resolve, reject) => {
        // 这里是任务逻辑
        throw("异常");
    }
);

运行Promise并根据结果情况进行处理

运行结果为成功 – 调用了 resolve

promiseOK.then((data) => {
    console.log("OK:" + data)
}).catch((data) => {
    console.log("ERROR:" + data)
})

上面的例子输出为 :

OK:成功完成

链式两次then

// 会输出 : 
// THEN1:成功完成
// THEN2:undefined
promiseOK.then((data) => console.log("THEN1:" + data))
		 .then((data) => console.log("THEN2:" + data))

运行过程中被驳回-- 调用了 reject

promiseReject.then((data) => {
    console.log("OK:" + data)
}).catch((data) => {
    console.log("ERROR:" + data)
})

上面的例子输出为 :

ERROR:无法完成

链式两次catch

// 会输出 : 
// ERROR1:无法完成
promiseReject.catch((data) => console.log("ERROR1:" + data))
			 .catch((data) => console.log("ERROR2:" + data))

运行过程中遇到了异常-- 使用了 throw

promiseException.then((data) => {
    console.log("OK:" + data)
}).catch((data) => {
    console.log("ERROR:" + data)
})

上面的例子输出为 :

ERROR:异常

链式两次catch

// 会输出 : 
// ERROR1:异常
promiseException.catch((data) => console.log("ERROR1:" + data))
			    .catch((data) => console.log("ERROR2:" + data))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值