gpt4 book ai didi

javascript - 有没有办法最终添加到现有的 promise 中?

转载 作者:行者123 更新时间:2023-12-01 02:52:33 25 4
gpt4 key购买 nike

我正在使用 localforage,它返回 key() 和 length() 等函数的 promise 。我还使用 $http() ,它也返回一个 promise ,但它包含一个 finally() 函数,而另一个函数则没有。

我的服务链下游不知道 localforage 还是 $http 发出请求,因此它们都需要相同的 promise 结构(最后和然后)。有没有办法将finally添加到还没有的promise中?

我尝试将 $q.defer().promise.finally 附加到 localforage 的 promise 中,但没有成功。

var promise = localforage.length();
promise.finally = $q.defer().promise.finally;
return promise;

还有其他方法可以实现这一目标吗?

最佳答案

如果您想将一个 Promise“转换”为另一个 Promise,您可以使用它们的 resolve 方法来解析内部 Promise(或采用 Promise 的值)。对于 $q 您可以使用 resolve method here 。所以基本上:

return $q.resolve(localforage.length());

还有Promise.prototype.finally即将推出,因此您可以从头开始 $q 并使用 native Promiseshim 。您所要做的就是使用 Promise 而不是 $q (字面意思)。

关于javascript - 有没有办法最终添加到现有的 promise 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46880366/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com