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

jquery - 如何使所有 AJAX 调用顺序?

我使用 jQuery。而且我不想在我的应用程序上进行并行 AJAX 调用,每个调用都必须等待前一个调用才能开始。如何实施?有帮手吗?

更新如果有任何同步版本的 XMLHttpRequest 或 jQuery.post 我想知道。但是顺序!=同步,我想要一个异步和顺序的解决方案。

0 投票
4 回答
49775 浏览

jquery - 什么是延迟对象?

jQuery 1.5 添加了“延迟对象”。它们是什么,它们究竟是做什么的?

0 投票
11 回答
138779 浏览

javascript - 如何使用 jQuery 延迟?

jQuery 1.5 带来了新的 Deferred 对象和附加的方法.when.Deferred并且._Deferred.

对于没有使用.Deferred过的人,我已经注释了它的来源

这些新方法的可能用途是什么,我们如何将它们融入模式?

我已经阅读了API源代码,所以我知道它的作用。我的问题是我们如何在日常代码中使用这些新功能?

我有一个按顺序调用 AJAX 请求的缓冲区类的简单示例。(下一个在上一个完成后开始)。

我正在寻找 and 的演示和可能的.Deferred用途.when

也很高兴看到._Deferred.

链接到jQuery.ajax示例的新来源是作弊。

当我们抽象出一个操作是同步完成还是异步完成时,我对哪些技术可用特别感兴趣。

0 投票
4 回答
58150 浏览

jquery - 你如何使用 jQuery Deferreds 数组?

我有一个应用程序需要按特定顺序加载数据:根 URL,然后是模式,最后使用各种数据对象的模式和 url 初始化应用程序。当用户浏览应用程序时,数据对象被加载、根据模式验证并显示。当用户对数据进行 CRUD 时,模式提供了首次验证。

我在初始化时遇到问题。我使用Ajax 调用来获取根对象$.when(),然后创建一个promise 数组,每个schema 对象一个。这样可行。我在控制台中看到了 fetch。

然后我看到所有模式的获取,所以每个 $.ajax() 调用都有效。fetchschemas() 确实返回了一组承诺。

但是,最后的 when() 子句永远不会触发,并且“DONE”这个词永远不会出现在控制台上。jquery-1.5 的源代码似乎暗示“null”作为传递给 $.when.apply() 的对象是可接受的,因为当没有对象时 when() 将构建一个内部 Deferred() 对象来管理列表通过了。

这使用 Futures.js 有效。如果不是这样,应该如何管理 jQuery Deferreds 数组?

0 投票
3 回答
6906 浏览

jquery - 我将如何使用 jQuery.Deferred 对象来等待异步函数调用完成?

我在表单中使用Plupload 文件上传器。我想对其进行自定义,以便在提交表单时,即单击“提交”按钮时,首先发生的是文件上传,然后是提交表单。

据我所知,我可能对此有误,但似乎该调用uploader.start()是异步函数调用。所以此刻,上传将开始,表单将在文件上传之前提交。问题是我无法控制这个函数调用。

我最近读到了jQuery 1.5 的新版本和新的Deferred Object,似乎这有可能帮助我解决这个问题。有没有办法等待异步函数调用完成它的工作,然后在调用之后继续执行代码。所以我正在寻找类似以下伪代码的东西......

有没有办法“等待”uploader.start()完成,本质上是在单击事件处理程序上暂停,以便可以首先上传所有文件,然后单击事件处理程序的其余部分可以完成执行?我尝试了以下操作,但在文件上传完成之前打印了“完成”...

另一个有用的信息...我可以将某些事件绑定到此uploader对象实例,例如“UploadProgress”或“UploadComplete”。例如,我可以使用延迟对象以某种方式捕获“UploadComplete”事件触发吗?有没有一种 AJAX-y 方式来做到这一点?

谢谢。

0 投票
1 回答
380 浏览

jquery - jQuery 1.5:为什么延迟对象在 UNRESOLVED 状态下调用 .done()?

我创建了一个模拟我在实际页面上遇到的问题的测试页面。

正如您在 中看到的doSomething2(), dfd 对象故意从未被解析。但是,当我运行以下代码时,.done()indoSomething()总是会触发。检查控制台,您会在运行之前看到这dfd.isResolved()错误的。.done()

有什么见解吗?任何帮助表示赞赏

编辑:我明白这个函数什么也没做。我刚刚做了一个例子来复制我的问题。我了解获取“google.com”是违反 SOP 的。我刚刚创建了这个例子来复制我的问题。我正在开发一个 Web 应用程序,该应用程序旨在从一个 html 文件在本地运行。在这种情况下,没有严格遵守 SOP,所以至少测试应该没问题。

编辑:我创建了一个 jsfiddle 来测试这种行为:http: //jsfiddle.net/Sgwpv/2/

0 投票
1 回答
21060 浏览

javascript - jQuery延迟不起作用

我正在尝试一个代码

这按预期工作。但是,当我将其写为:

它只是提醒“开始”并终止。可以在http://jsfiddle.net/XQFyq/2/找到一个工作示例。我究竟做错了什么?

0 投票
1 回答
7022 浏览

jquery - jQuery延迟解析()不起作用

我做错了什么?

0 投票
2 回答
11435 浏览

javascript - 如何将 jQuery Deferred 与自定义事件一起使用?

我有两个抽象进程(例如,在 js 对象中使用不暴露其内部的显示模块模式进行管理),它们在完成时触发自定义事件。我想在两个自定义事件都触发时执行一个操作。

jQuery 1.5 中新的Deferred逻辑似乎是一种理想的管理方式,除了 when() 方法采用返回 promise() 的 Deferred 对象(或普通的 js 对象,但随后 when() 立即完成而不是等待,这对我没用)。

理想情况下,我想做类似的事情:

将这两种技术结合起来的最佳方式是什么?

0 投票
2 回答
981 浏览

javascript - jQuery Deferred Ajax,JavaScript 范围问题?

我认为这很简单,但它不起作用(http://jsfiddle.net/QtjaG/上的实时示例):

由于$.resx.call(labels)应该将this上下文设置$.resx()labels,不应该console.log(labels)记录yo吗?