Promise 相关方法详解
2023-10-16 00:13:38
当然,我可以帮助您撰写一篇关于 Promise 相关方法的文章。
Promise 是 JavaScript 中用于处理异步编程的强大工具。它提供了一系列方法来处理异步操作,包括 Promise.deferred、Promise.resolve、Promise.reject、Promise.all 和 finally。
## Promise.deferred
Promise.deferred 方法创建一个延迟对象,该对象包含一个 Promise 和两个函数 resolve 和 reject。resolve 函数用于将 Promise 的状态变更为 resolved,reject 函数用于将 Promise 的状态变更为 rejected。
var deferred = Promise.deferred();
deferred.resolve("成功"); // 将 Promise 的状态变更为 resolved
deferred.reject("失败"); // 将 Promise 的状态变更为 rejected
## Promise.resolve
Promise.resolve 方法将一个值包装成一个 resolved 的 Promise。如果该值是一个 Promise,则直接返回该 Promise。
var promise = Promise.resolve("成功");
promise.then(function(value) {
console.log(value); // 输出:成功
});
## Promise.reject
Promise.reject 方法将一个值包装成一个 rejected 的 Promise。如果该值是一个 Promise,则直接返回该 Promise。
var promise = Promise.reject("失败");
promise.catch(function(error) {
console.log(error); // 输出:失败
});
## Promise.all
Promise.all 方法将多个 Promise 包装成一个新的 Promise。当所有传入的 Promise 都变为 resolved 状态时,新的 Promise 才变为 resolved 状态。如果其中任何一个 Promise 变为 rejected 状态,新的 Promise 立即变为 rejected 状态。
var promise1 = Promise.resolve("成功1");
var promise2 = Promise.resolve("成功2");
var promise3 = Promise.reject("失败");
Promise.all([promise1, promise2, promise3])
.then(function(values) {
console.log(values); // 输出:[ "成功1", "成功2" ]
})
.catch(function(error) {
console.log(error); // 输出:失败
});
## finally
finally 方法是 Promise 的原型方法,它返回一个新的 Promise。新的 Promise 在原 Promise 结束时执行,无论原 Promise 是 resolved 还是 rejected。
var promise = Promise.resolve("成功");
promise.finally(function() {
console.log("finally");
});
promise.then(function(value) {
console.log(value); // 输出:成功
});
以上就是 Promise 相关方法的详细介绍。希望这篇文章对您有所帮助。