Javascript 有没有一种方法可以最终增加现有的承诺?

Javascript 有没有一种方法可以最终增加现有的承诺?,javascript,angularjs,localforage,Javascript,Angularjs,Localforage,我使用的是localfower,它返回对key()和length()等函数的承诺。我还使用了$http(),它也会返回一个promise for,但它包含一个finally()函数,而另一个函数则没有 我的服务不知道是LocalFower还是$http发出请求,因此它们都需要相同的promise结构(最后和之后)。有没有一种方法可以最终补充那些尚未兑现的承诺 我已尝试将$q.defer().promise.finally附加到LocalFounder的承诺中,但没有成功 var promise

我使用的是localfower,它返回对key()和length()等函数的承诺。我还使用了$http(),它也会返回一个promise for,但它包含一个finally()函数,而另一个函数则没有

我的服务不知道是LocalFower还是$http发出请求,因此它们都需要相同的promise结构(最后和之后)。有没有一种方法可以最终补充那些尚未兑现的承诺

我已尝试将$q.defer().promise.finally附加到LocalFounder的承诺中,但没有成功

var promise = localforage.length();
promise.finally = $q.defer().promise.finally;
return promise;
是否有其他方法可以实现这一点?

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

return $q.resolve(localforage.length());
很快就会有了,所以你可以抓取
$q
,并使用带有。你所要做的就是直接使用
Promise
而不是
$q
(字面意思)。

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

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

很快就会有了,所以你可以抓取
$q
,并使用带有。你所要做的就是直接使用
Promise
而不是
$q
(字面意思)。

你应该能够通过这样做转换成一个标准的承诺<代码>承诺。解决(someNoneStandardPromise)然后执行一个
捕获
,然后执行一个
然后
仍然没有为我执行。承诺返回,然后函数执行,但我得到了错误
(…)。最终不是函数
使用标准承诺,最终不是标准承诺。照我说的做
catch
then
。即使不是正确的解决方案,我也需要得到最终解决方案的承诺。无数的服务和控制器已经最终实现了
。同时,如果可能的话,您需要一个更快的解决方案。您应该能够通过以下方式将其转换为标准承诺:<代码>承诺。解决(someNoneStandardPromise)
然后执行一个
捕获
,然后执行一个
然后
仍然没有为我执行。承诺返回,然后函数执行,但我得到了错误
(…)。最终不是函数
使用标准承诺,最终不是标准承诺。照我说的做
catch
then
。即使不是正确的解决方案,我也需要得到最终解决方案的承诺。无数的服务和控制器已经最终实现了
。同时需要一个更快的解决方案,如果可能的话。更改涉及遗留代码,因此需要一个仍然使用finally的解决方案。@jrquick如果使用一个垫片,这就是垫片的重点。@jrquick返回的承诺将有一个
finally
method@MinusFour你说得对。我尝试了
Promise.resolve
而不是
$q.resolve
。但是我重新读了一遍,谢谢!更改涉及遗留代码,因此需要一个仍然使用finally的解决方案。@jrquick如果您使用一个垫片,那么它会的,这就是垫片的要点。@jrquick返回的承诺将有一个
finally
method@MinusFour你说得对。我尝试了
Promise.resolve
而不是
$q.resolve
。但是我重新读了一遍,谢谢!