gpt4 book ai didi

javascript - Angular 是否有一个包含所有当前 Promise 的预定义对象?

转载 作者:行者123 更新时间:2023-12-02 15:47:08 26 4
gpt4 key购买 nike

我有一个 Controller ,可以允许除一个函数(我们称之为 thatOneFunction() )之外的所有内容异步运行。原因是 OneFunction() 依赖于大约 10 个已解决的 promise ,否则它在需要执行的范围内没有数据。

我在网上看到了多个示例,说明如何专门获取单个获取/查询/服务的 promise ,但我没有看到一种检查所有 promise 是否已立即得到解决的方法 - 也许是凭借 Angular我只是不知道的状态变量?像这样的东西:

var currentPromises = $state.promises;
currentPromises.then(thatOneFunction());
或者,如果还没有内置变量,是否有一种方法可以动态生成当前所有未完成的 promise 的列表,然后我可以使用 .then()?这会很有帮助,因为我在此应用程序中将有许多具有这种结构的页面。

我已经尝试过/正在做什么”截至目前,我有一个解决方法,但它需要一些我不想继续的硬编码。它基于插入对函数的调用,该函数检查该函数被调用次数的计数器,将其与应该已经调用该函数的 Promise 数量进行比较(在计算 Controller 中的 Promise 后进行硬编码),以及是否已经完成了所有必需的 promise ,然后调用 thatOneFunction()。

感谢您的帮助/指点。

我的代码示例(真实姓名/变量已更改):

Controller

$scope.runAfterAllPromises = function() {
*code dependedent on all promises here*
}

MySvc.loadList(function (results) {
$scope.myList = results;
});


$scope.runAfterAllPromises();

服务

app.service("MySvc", ['$resource', function ($resource) {


this.loadList = function (callBackFunction) {
var stateRes = $resource('/api/ListApi');
stateRes.query(function (ListResults) {
if (callBackFunction && typeof (callBackFunction) === 'function') {
callBackFunction(ListResults)
};
})

最佳答案

如果有帮助的话,你可以链式 promise 吗?

所以像这样:

var promises = [];
promises.push(yourPromise1());
promises.push(yourPromise2());
promises.push(yourPromise3());
$q.all(promises).then(function(){ ...});

这就是你的意思吗?

关于javascript - Angular 是否有一个包含所有当前 Promise 的预定义对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32105452/

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