Promise 是一个 ECMAScript 6 提供的类,目的是更加优雅地书写复杂的异步任务。回调
现在我们新建一个 Promise 对象:
new Promise(function (resolve, reject) { // 要做的事情... });
Promise 构造函数接受一个函数作为参数,该函数是同步的并且会被立即执行,所以我们称之为起始函数。起始函数包含两个参数 resolve 和 reject,分别表示 Promise 成功和失败的状态。
起始函数执行成功时,它应该调用 resolve 函数并传递成功的结果。当起始函数执行失败时,它应该调用 reject 函数并传递失败的原因。
Promise 构造函数返回一个 Promise 对象,该对象具有以下几个方法:
- then:用于处理 Promise 成功状态的回调函数。
- catch:用于处理 Promise 失败状态的回调函数。
- finally:无论 Promise 是成功还是失败,都会执行的回调函数。
const promise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('成功');
}, 1000);
});
promise.then(result => {
console.log(result); // 输出: 成功
}).catch(error => {
console.log(error);
});
new Promise((resolve, reject) => {
resolve('success');
}).then(result => {
console.log(result); // 输出: success
throw "first error";
//return 'next success';
}).then(result => {
console.log(result); // 输出: next success
throw 'An error occurred'; // 抛出错误
}).catch(error => {
console.log(error); // 捕获并输出: An error occurred
});