问题标签 [q]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
189 浏览

javascript - 这是我需要的一连串承诺吗

我有一个函数需要在完成几个 Ajax 调用后运行。每个 AJAX 调用当前被一个接一个地调用,并且当前在它们各自的回调中工作。这是一个承诺链的候选者,因为每个 ajax 调用仅在其各自的测试为真时运行?而且我不一定需要连续运行这些调用,只是在最后得到一个回调(当所有满足运行条件的 Ajax 调用都完成了它们各自的回调时)。

示例 AJAX 调用

0 投票
1 回答
1730 浏览

javascript - Javascript Promise/然后失去作用域

谁能告诉我我在这里做错了什么?

我有一个承诺,当返回结果时会丢失局部变量范围。

我需要延迟调用完成时可用的 id 值:

0 投票
1 回答
22498 浏览

angularjs - 在AngularJS中使用q的多个链式延迟函数停止返回数据

我正在尝试将多个延迟函数调用链接在一起,以便下一个调用获得前一个 deferred.resolve 的结果。当我将这些调用中的两个以上链接在一起时,数据将停止返回。

这是角度控制器内的基本代码:

当我运行它时,我得到以下输出:

如何将它们链接在一起,以便第三次调用从第二次调用中获取结果,第四次从第三次调用中获取结果?

我创建了一个 jsFiddle:http: //jsfiddle.net/rhDyL/

0 投票
2 回答
2448 浏览

jquery - 将 Promise 与 Q 相结合

在 jquery 中,我可以按如下方式组合 Promise:

你将如何使用 Q 重写它?

还。在这种情况下使用 Q 比 jquery 有什么好处?

0 投票
1 回答
2320 浏览

javascript - 如何使用 $q all angular.js 处理多个 http 请求

我正试图围绕 $q 角度库。在我的 routeprovider 中,我想从服务器获取所有数据并将其存储在 localStorage 中。但由于某种原因,在路由到 selectMedia 之前,解析似乎没有等待所有 http 请求完成。根据我阅读角度文档的理解,这应该可以工作,但不能。我完全误解了这个概念还是我的想法正确?

0 投票
0 回答
481 浏览

angularjs - 由 promise 更改的范围变量不会更新 dom

我对 AngularJS 还很陌生,所以请耐心等待。我正在尝试实现一个画廊滑块类型的应用程序,但我需要在所有图像加载之前加载页面并执行一些操作,因为它们非常大并且可能有很多图像。我试图通过承诺来做到这一点,它可以正常工作并重新调整我的 json 对象,但是当范围变量更改时,我看不到页面上的更新。考虑以下示例:

我的指令:

...注意我在指令中指定了控制器。这有效并从下面的控制器呈现我的测试变量。

我的控制器:

并且是图像工厂:

稍后我将通过 $http get 获取数据,但我只是将这些数据放入她的测试中。

和模板:

...请注意,添加第一个 li 只是为了查看它是否会呈现。

无论如何,当应用程序触发时,我会到达 $scope.photos = result 行,并且它有数据。但永远不要更新 dom。

0 投票
3 回答
4806 浏览

jquery - 如何将 promise 对象数组转换为数组的 promise 对象?

有没有办法将 promise 对象数组转换为数组的 promise 对象?我正在寻找一些行为类似于$q.all(promises)AngularJS 的东西。

这是我的代码:

我希望该getPages函数返回一个将使用值数组解析的单个承诺,每个值对应于承诺数组中相同索引处的承诺。如果任何一个 Promise 被拒绝解决,这个结果 Promise 将被同样的拒绝解决。

然后我会用

wheregetEvents是另一个函数,它需要一个数组,其中的元素由getPages.

谁能帮我吗?谢谢!

0 投票
1 回答
271 浏览

javascript - 'jQuery.active' 在 q 中的等效行为

在我的 c# selenium webdriver 测试中,我偶尔不得不使用:

这会一直等到 jQuery 调用完成指定的“超时”。我想知道是否有可以用于 q.js 库的等价物?

我是测试人员而不是网页设计人员,并且对 q 库的经验很少,浏览它的文档我看不到任何可能包含我想要的信息的相关静态属性。

0 投票
1 回答
938 浏览

modal-dialog - Durandal 模态不会关闭

模态比我想象的更难:/

让模态正确加载视图/视图模态,单击保存按钮保存信息(我确实从 Q.js 得到“应该为空:[]”,但显然这不是问题?)我的问题拥有可能与承诺有关,但如果是,我找不到它。

父视图模型 -

Modal 的视图模型 -

如果我按下绑定回取消()的取消按钮,它会很好地关闭,如果我单击保存按钮,它会点击保存(),正确保存对象,并到达所有断点但从不关闭。如果在我保存后按取消,它会再次关闭。我曾尝试在 complete() 函数期间调用 cancel() 并到达语句,但再次没有关闭。有任何想法吗???

注意:我可以从模态调用 router.replaceLocation ,它会很好地改变视图,但模态会持续到下一个视图。

编辑:我添加了另一个按钮“关闭”,该按钮在 isSaving 完成并且 hasChanges 为假之前被禁用,这让我可以关闭它,一切都很好,但这不应该是必要的,对吧?

0 投票
2 回答
1216 浏览

breeze - 在 Durandal 应用程序中与 Q 承诺作斗争

在我的视图模型的激活方法中,我有以下代码。

在我的数据上下文代码中,我有

我希望设置承诺的方式将检索制造商,然后激活方法将完成。我希望在“框架视图激活”日志消息之前出现“从远程数据源检索 [制造商]”日志消息,但实际上相反。如何在激活方法完成之前完成数据检索?