问题标签 [deferred]

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 投票
5 回答
539 浏览

javascript - 关于 Node 的代码风格

编辑

感谢所有答案,
最后我决定使用Step之类的工具,

我所需要的只是“流量控制”,并且不想要任何可能会降低性能的东西(我不知道它会影响多少,或者效果可以忽略不计)。

所以我只是创建了一个用于流量控制的小工具:

line.js

用法:

希望这可以帮助。

编辑结束


众所周知,
Node 的内置或第三方模块通常会提供异步 API,
并使用“回调”函数来处理结果。

这很酷,但有时会像这样编写代码:

像这样的代码很难阅读。

我知道“延迟”库可以解决这样的问题,
Node 有什么好的“延迟”模块吗?
如果我使用“延迟”对 Node 进行编码,性能如何?

0 投票
1 回答
340 浏览

jquery - jQuery 按顺序延迟对象和运行函数

我有这段代码将使用 $.ajax 加载 css/js/jst(javascript 模板),我想让它在请求后运行一个请求,一次只运行一个,并异步执行。

现在,该代码将在启动时运行所有请求。它将等待 deferred.resolve() 被调用,但不会等待 iterateWhen() 循环开始迭代 deferreds[]。

根据 jQuery 文档,$.Deferred() 将接受一个函数作为可选参数,并在从构造函数返回之前运行该函数,所以这就是问题所在,但我不知道有一个解决方案可以满足我的需求。

问候!

0 投票
1 回答
403 浏览

jquery - 调用 jQuery $.Deferred .state() 方法正在启动返回 done() 方法

我正在对一个应用程序进行一些测试,我意识到在 Deferred 对象上调用 .state() 似乎会一次又一次地启动 .done() 回调。

我在这里制作了一个简化的测试用例

http://jsfiddle.net/vaxilart/ajeGm/

我想知道这是正常行为还是我误解了什么。

先感谢您 !

0 投票
2 回答
8229 浏览

jquery - jQuery 中的 $.when.apply(null, a method) 是什么意思?

我正在阅读 jQuery 中的延迟对象。谁能告诉我以下两种调用方式有什么区别?

  1. $.when.apply(null, a method).done(function(){success callback})
  2. $.when.(a method).done(function(){success callback})

哪种情况适合上述第一种方式?

提前致谢。

0 投票
1 回答
528 浏览

ajax - 为什么我不能设置像 dojo.store.JsonRest 这样的 Dojo Deferred 属性?

为什么我不能将 Deferred 对象的(自定义用户定义的)属性设置为同一个 Deferred 对象返回的承诺?我认为这是可能的,因为dojo.store.JsonRest

我必须做一些非常相似的事情,但是我链接了一个额外的延迟对象,因为我需要将我的 JSON 输入转换为 QueryResults() 期望的格式。如果我将该承诺分配给我的 Deferred 对象的属性,它会导致undefined. 但是,如果我将承诺分配给常规变量,则分配有效。不幸的是,QueryResults 需要分配属性。

我想我已经将问题归结为xhr()and返回的承诺之间的差异xhr().then()。请检查此 jsFiddle的控制台输出。

有什么区别,我该如何解决?

0 投票
1 回答
607 浏览

postgresql - PostgreSQL DEFERRED CONSTRAINTS 和开始结束块

我有一个带有唯一约束的表,标记为DEFERRABLE INITIALLY DEFERRED;

然后我执行下一个查询:

一切都很顺利。但是如果我尝试执行

我得到一个错误。为什么 Postgres 在退出BEGIN END块时强制进行约束检查?不应该在事务结束时检查约束吗?我怎样才能改变这种行为?

0 投票
1 回答
156 浏览

gwt - 具有延迟绑定的 GWT 反射 GAE 在 Firefox 中工作,而不是 chrome、IE

我有延迟绑定的问题。

我在这个博客中创建了它:http: //programmatica.blogspot.com/2007/10/classfornamefullyqualifiedclassnamenewi.html

我的代码在“GWT.create”处崩溃。但只有当我在 Google App Engine 上运行它时,并且只在 IE 和 Chrome 中运行。代码在每个浏览器中都可以在本地正常工作,在 Firefox 的 GAE 上可以在线工作。

我没有任何错误消息,但如果我为 IE 和 Firefox 分析 cache.html,它们是不同的。

它在 IE 中抛出 ClassCast 异常,但在 Firefox 中没有

0 投票
1 回答
544 浏览

jquery - Jquery:具有延迟的控制功能流

抱歉,但我似乎在兜圈子。

这个过程相当简单

  1. SaveButtonClicked

  2. 调用函数执行离线数据库事务以更新记录

  3. 检查是否在线(/*使用 Ed Norton 示例进行此操作 */)

  4. 如果在线调用选择事务以获取所有更新的记录

  5. 选择加载结果成功到数组中

  6. 使用数组调用 web 服务

到目前为止,我尝试使用 $.Deferred, dothis = defer.pipe(...), .queue [但这些似乎基于元素而不是函数完成] 来控制流程,将函数放入数组中,

在测试中,控制台总是在“构建数组”之前写入“构建数组”

那么最好的方法是什么?$.Deffered、队列、回调……黑魔法?

0 投票
1 回答
169 浏览

javascript - Deferred.pipe() 可以防止调用后续的 .done 和 .fail 吗?

我有两个处理程序:onSuccess 和 onFailure,但有时(当服务器决定这样做时)我希望阻止它们中的任何一个运行。我知道我可以从 and 中返回一些“忽略”来在and处理程序.pipe()中对其进行测试,但是有没有更优雅的方法,比如在?.done().fail()this.pipe()

0 投票
1 回答
3123 浏览

jquery - JQuery - 延迟对象数组的 $.when 语法

这是我第一次使用$.when,我在语法上有困难。
我有类似于下面简化示例的代码。它有效(如果我在简化它时没有引起错误)。我的问题是我不知道customerIds数组将包含多少元素。

我想$.when按如下方式编写语句,但难以正确使用语法。

其中getCustomerDataCalls实施为:

不幸的是,我的实现出了点问题,我无法弄清楚我哪里出错了。我最好的猜测是返回一个Deferreds数组时出了点问题

更新:
在 lanzz 提到我的人为示例已经返回一个 Deferred 之后,我更新了代码,我更新了我的示例以包含doSomeWork