返回

Promise 相关方法详解

前端

当然,我可以帮助您撰写一篇关于 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 相关方法的详细介绍。希望这篇文章对您有所帮助。