问题标签 [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 投票
2 回答
1576 浏览

javascript - Q.all() 承诺不能正确解决延迟承诺

我多次调用 POST 以便在服务器上创建对象。POST 包含在一个承诺中。我创建了一组 promise 并将其传递给 Q.all 但是当它被解析时,数组中的所有对象都具有相同的 id,并且在服务器上只创建了一个对象。

这是我的代码

结果返回所有具有相同 id 的对象。不知道为什么?有没有人有什么建议。

0 投票
1 回答
3406 浏览

javascript - Q 承诺 - 范围如何工作?

Q 承诺的范围如何运作?据我所知,“then”的回调是由窗口调用的,比如 setTimeout。

在这个例子中(只是一个理解它是如何工作的例子):

要在 foo 的实例中包含文本,我正在使用绑定:

还有其他方法吗?

0 投票
1 回答
321 浏览

angularjs - $resource 和 $q 设置下拉初始值

我有一个数据服务说:

然后,我使用这些位置在我的视图中填充下拉列表:

我想在我的控制器中设置下拉菜单的初始值:

这不起作用,我认为是因为 $resource 的异步性质——它还没有列表,所以我无法设置它。

我知道 $q 旨在解决这个问题,但不确定如何创建承诺,并设置

完成后

我已经阅读了 $q 和 $resource 文档,但是我还没有看到一个很好的代码示例,说明如何像我一样进行简单的 get 操作,然后在 get 承诺完成后执行一些功能/操作。

谢谢。

0 投票
2 回答
14310 浏览

node.js - 何时拒绝/解决承诺

我正在考虑什么时候我需要拒绝一个承诺。我发现了一些关于这个主题的问题,但找不到正确的答案。 我什么时候应该拒绝承诺?

这篇文章 http://howtonode.org/6666a4b74d7434144cff717c828be2c3953d46e7/promises 说:

  • Resolve:成功的 Promise 是“resolved”,它调用正在等待的成功侦听器并记住为附加的未来成功侦听器解析的值。分辨率与返回值相关。
  • Reject:当遇到错误条件时,Promise 被“拒绝”,它调用正在等待的错误侦听器并记住被拒绝的值以供将来附加的错误侦听器使用。拒绝与抛出的异常相关。

这是原则指导吗?只有在发生异常时才拒绝承诺?

但如果是这样的功能

我希望该函数返回一个用户,这样我就可以在不验证结果的情况下继续这个链

什么是最佳/常见做法?

0 投票
3 回答
909 浏览

javascript - Q - 执行一系列承诺并在 DAG 中定义它们之间的依赖关系

我想处理一系列数据,每个数据的输出都可以用作其他数据的输入。

例如:

这意味着一旦a1完成,它的输出将被发送到b1b2; 并且当这些完成时,它们的两个输出都将被发送到c1(仅在它们都完成时。 x1可以与所有a1, b1,b2c1; 并行执行,并且b1可以与 并行执行b2,因为depends它们之间没有定义。

c1和完成后x1,因此所有 5 个都完成后,应返回所有 5 个的输出。

我们将假设没有定义循环依赖,因此是有向无环图(DAG)

我想知道如何使用Q来实现它,因为:

  • 所有数据的处理都是异步的,因此我需要使用回调,或者延迟和承诺;我更喜欢后者
  • Promise 可以作为一种方便的方式来定义图中的边

但是,我无法通过概念阶段

(请注意,此代码未经测试,我不希望它起作用,只是为了说明我的问题所必需的要点。)

我想知道:

  • 我这样做对吗?我是否完全错过了Q图书馆的重点。还是延期和承诺?
  • 我主要关心的是doData功能:

    /li>
  • 具有以下doBatch功能:

    /li>
  • 一般的

    /li>
0 投票
2 回答
5989 浏览

angularjs - 新的 Angular.js 1.1.5 资源返回 promise then() 函数错误,然后是另一个请求

我正在使用最新的 Angular.js,1.1.5,它通过资源调用返回承诺。当您有多个请求之后将有另一个依赖于这些请求的请求时,正确的实现是什么?

为此,我收到一个错误:

TypeError: Object # has no method 'then'

模板是以下工厂返回资源:

0 投票
1 回答
2260 浏览

node.js - 使用 Firebase 返回一个数组

Node.js在使用 Firebase 时,试图找到使用 Q 库(或任何类似的库,我不偏袒)返回数据数组的最佳使用示例.on("child_added")

我尝试过使用Q.all(),但它似乎永远不会等待承诺在返回之前完成。这是我当前的示例:

0 投票
1 回答
8364 浏览

javascript - AngularJS 中的 deferred.resolve()

我需要拦截 ng-view 的更改并加载“加载 div”覆盖,直到加载所有新图像。

我试图在我的 HttpInterceptor 中暂停承诺回调,但我无法再次解决我的承诺。

这里有一个例子:

http://jsfiddle.net/Lmvjh/

当我尝试调用 globalForTest.resolve(value) 时,没有任何反应,也没有错误。

0 投票
1 回答
985 浏览

angularjs - AngularJs 范围属性和承诺

我有这个代码:

在第 15 行 $scope.geocodedResult 是一个承诺,迟早会成为结果值并且范围应该刷新。不幸的是,这并没有发生。如果我这样做,代码就可以工作

我究竟做错了什么?

更新:

我现在尝试只使用 $q 但我无法让它工作:

一个断点

在与 Q 一起正常工作时永远不会被触发

0 投票
1 回答
3268 浏览

javascript - 如何简化 Q Promise 示例

我正在开发一个简单的应用程序,它可以进行顺序 ajax 调用,将第一次调用的结果传递给下一次调用。

当然,我不想进入回调地狱,因此查看Promises/A+规范示例和Q 库

我准备了一个异步函数,它应该会产生我想要的结果。但我想了解如何简化顺序承诺传递。

现在我仍在阅读如何最好地使用承诺和延迟对象,所以请原谅我非常幼稚的代码。

所以现在我在看两件事:

  • 简化 Promise 顺序的方法(在我的情况下相互依赖)
  • 建议

    /li>

提前谢谢大家!