酷代码 AI
菜单
全部AI  /  热门  /  AI问答
服务商

作为javascript开发,promise 的 finally 怎么实现的?

Promise 的 finally 是通过 Promise.prototype.finally 方法实现的。这个方法会在 Promise 对象的状态变为 resolved 或 rejected 时被调用,无论调用 resolve 或 reject 时传递的参数是什么。 以下是一个简单的实现: ```javascript Promise.prototype.finally = function(callback) { var promise = this; return new Promise(function(resolve, reject) { promise.then(function(value) { callback(); resolve(value); }, function(error) { callback(); reject(error); }); }); }; ``` 在这个实现中,我们创建了一个新的 Promise,然后使用 then 方法来处理原始 Promise 的 resolved 和 rejected 状态。在 then 方法中,我们先调用回调函数,然后根据 Promise 的状态调用 resolve 或 reject。 注意,这个实现并不是标准的 Promise.prototype.finally,因为标准的 finally 方法会在 Promise 对象的状态变为 resolved 或 rejected 时立即执行回调函数,而这个实现会在 Promise 对象的状态变为 resolved 或 rejected 时才调用回调函数。如果你需要立即执行回调函数,你可以使用以下的实现: ```javascript Promise.prototype.finally = function(callback) { var promise = this; return promise.then(callback, callback); }; ``` 在这个实现中,我们使用 then 方法的两个参数来调用回调函数,无论 Promise 对象的状态如何。 [2023-11-09 01:16:44 | AI问答 | 277点数解答]

相关提问