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

jquery - jquery 使用 $.deferred

我正在使用 jQuery$.when函数来同步$.getJSON我拥有的两个异步调用。合并来自两个调用的数据现在可以正常工作,但是我想返回 merge 的内容,这是一个 jQuery 对象数组。

我正在尝试使用$.when包装在另一个函数中的函数来实现这一点,该函数包含我同步异步调用的代码。我的代码如下所示:

如何将mergedData数组的内容返回给调用函数,我知道异步调用的性质导致了这种行为,所以我只需要一个解决问题的模式。谢谢。

0 投票
1 回答
71 浏览

javascript - 使 jquery 脚本 1.5.2 兼容 when 函数

我需要做这个功能

成一个与 jquery 1.5 兼容的函数。

我一直在尝试,但无法让它工作。谁能帮帮我?

@Edit:我在这里做了一个设置http://jsfiddle.net/u4hWf/。如您所见,使用 jquery 1.5.2 会发生奇怪的视觉效果,而 jquery 1.6.x 不会发生这种情况

0 投票
1 回答
52 浏览

jquery - 延迟数组 - 数组结果访问问题

这似乎太奇怪了。

我有以下

我的期望是,参数将是延迟数组中 1 个调用的 1 个对象的数组,以及延迟数组中 X 调用的 X 对象数组。

我知道为什么会这样,但是检查数组的长度让我很沮丧。当只有 1 个对象并且有超过 1 个对象时,参数不是数组。这很明显。我可以做些什么来使返回的参数不仅仅代表第一次调用吗?

0 投票
1 回答
160 浏览

jquery-deferred - 使用 jQuery 的延迟

我一直在阅读有关 jQuery 的延迟,但我不能完全掌握如何使用它们。

我有以下深度嵌套的代码

每个Repository.Projects.*方法都包含一个异步调用来获取数据。传入的函数是回调,它会在成功时传递结果数据。存储库使用通用函数处理错误,因此我不需要传入错误函数。我需要确保在 xslt 转换之前已调用其中的每一个并返回数据。

所有的方法Repository.Projects.*看起来像这样

看来我应该能够重写这个,我只是看不到如何。

0 投票
6 回答
32383 浏览

jquery - 如何使用 jquery 链接 ajax 调用

我需要在不锁定浏览器的情况下发出一系列 N ajax 请求,并希望使用 jquery deferred 对象来完成此操作。

这是一个包含三个请求的简化示例,但我的程序可能需要排队超过 100 个(注意这不是确切的用例,实际代码确实需要确保步骤(N-1)成功,然后再执行下一个步):

这是写入控制台的内容(所有请求都是并行发出的,响应时间与预期的每个国家/地区的数据大小成正比:

如何让延迟对象为我排队?我尝试将 done 更改为 pipe 但得到相同的结果。

这是期望的结果:

编辑:

我很欣赏使用数组来存储请求参数的建议,但是 jquery deferred 对象能够对请求进行排队,我真的很想学习如何充分利用这个功能。

这实际上是我正在尝试做的事情:

但是,我想一次将请求分配到管道中,以便有效地使用每个遍历:

0 投票
1 回答
967 浏览

jquery - 有什么方法可以在循环中使用 jQuery 的 deferred / promise / when / then 功能进行多个 ajax 调用?

我一直在阅读更新的 jQuery 特性///如何Deferred用于简化对多个异步事件promise(例如 AJAX 查询)的操作whenthen

但是我一直在阅读的所有示例都讨论了一组预先知道的查询。

(借用编码怪胎的回答here

如果您事先不知道它们,例如在循环中使用不同的参数调用相同的分页 Web API,例如 MediaWiki 和 StackExchange API 的某些功能 - 有什么办法可以利用这些较新的 jQuery在这种情况下的功能还是我们必须回到旧的方式?

0 投票
1 回答
636 浏览

javascript - jQuery Deferreds、.pipe 和异常

我的代码看起来有点像这样(当然不那么荒谬):

问题是在 a 中抛出异常.pipe doneFilter似乎不会让 jQuery 将其视为失败,它会导致doneFilter.

另一种方法是创建一个新的 deferred 并在 周围抛出一个 try-catch 块doneFilter,但我想知道是否有更好的方法来解决它。

0 投票
1 回答
650 浏览

jquery - 在插件内部使用 jQuery Deferred 始终调用清理方法

我正在编写一个 jQuery UI 插件。在该插件内部,当发生操作时,我将调用插件选项之一作为回调。回调完成后,我想运行一些清理代码。

更具体地说,我的插件使用可拖放的 jQuery UI。在 droppable drop上,我调用了选项中定义的函数update。在调用update之后,这是一个 AJAX 调用,我想执行一些清理。我不希望插件的用户被要求执行此清理调用;我希望更新 AJAX 方法成功后自动进行清理调用。

我认为在这里使用 jQuery 的 Deferred 是有意义的。这是插件的drop实现的一些代码:

插件实现者的代码如下所示:

我将 AJAX 调用作为对drop回调的承诺返回。在 drop 回调中,我想始终执行清理操作removeSelectedItems,所以我使用了 .then() 函数。它似乎没有运行。

这种模式听起来是不是一个好主意。任何人都可以帮我做这个设计吗?为什么我的 done 函数没有在drop回调中运行?

0 投票
4 回答
109868 浏览

jquery - $.ajax 的成功和 .done() 方法有什么区别

谁能帮我?
我无法理解 和 之间success.done()区别$.ajax

如果可能,请举例说明。

0 投票
2 回答
2476 浏览

jquery - 循环每次迭代只发生在jQuery延迟何时/然后可能没有递归之后?

我想在循环中调用 jQuery 延迟函数,但每次迭代都应该等待上一次迭代使用延迟函数完成when()

现在当然,因为getJSON是异步的,所以所有迭代中的所有请求实际上都将在when调用任何 s 之前发送。

我意识到我可以通过调用一个函数来使用递归来实现这一点,该函数将我在then.

但我想知道是否有一些我缺少使用而不是递归的技术。我总是担心将来某个时候递归会用完堆栈。该参数num_of_iterations可能非常大。

我可以用pipe()这个吗?我在讨论它的所有关于过滤的文档时遇到了很多麻烦......