问题标签 [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.
jquery - 如何使所有 AJAX 调用顺序?
我使用 jQuery。而且我不想在我的应用程序上进行并行 AJAX 调用,每个调用都必须等待前一个调用才能开始。如何实施?有帮手吗?
更新如果有任何同步版本的 XMLHttpRequest 或 jQuery.post 我想知道。但是顺序!=同步,我想要一个异步和顺序的解决方案。
jquery - 什么是延迟对象?
jQuery 1.5 添加了“延迟对象”。它们是什么,它们究竟是做什么的?
javascript - 如何使用 jQuery 延迟?
jQuery 1.5 带来了新的 Deferred 对象和附加的方法.when
,.Deferred
并且._Deferred
.
对于没有使用.Deferred
过的人,我已经注释了它的来源。
这些新方法的可能用途是什么,我们如何将它们融入模式?
我已经阅读了API和源代码,所以我知道它的作用。我的问题是我们如何在日常代码中使用这些新功能?
我有一个按顺序调用 AJAX 请求的缓冲区类的简单示例。(下一个在上一个完成后开始)。
我正在寻找 and 的演示和可能的.Deferred
用途.when
。
也很高兴看到._Deferred
.
链接到jQuery.ajax
示例的新来源是作弊。
当我们抽象出一个操作是同步完成还是异步完成时,我对哪些技术可用特别感兴趣。
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 数组?
jquery - 我将如何使用 jQuery.Deferred 对象来等待异步函数调用完成?
我在表单中使用Plupload 文件上传器。我想对其进行自定义,以便在提交表单时,即单击“提交”按钮时,首先发生的是文件上传,然后是提交表单。
据我所知,我可能对此有误,但似乎该调用uploader.start()
是异步函数调用。所以此刻,上传将开始,表单将在文件上传之前提交。问题是我无法控制这个函数调用。
我最近读到了jQuery 1.5 的新版本和新的Deferred Object,似乎这有可能帮助我解决这个问题。有没有办法等待异步函数调用完成它的工作,然后在调用之后继续执行代码。所以我正在寻找类似以下伪代码的东西......
有没有办法“等待”uploader.start()
完成,本质上是在单击事件处理程序上暂停,以便可以首先上传所有文件,然后单击事件处理程序的其余部分可以完成执行?我尝试了以下操作,但在文件上传完成之前打印了“完成”...
另一个有用的信息...我可以将某些事件绑定到此uploader
对象实例,例如“UploadProgress”或“UploadComplete”。例如,我可以使用延迟对象以某种方式捕获“UploadComplete”事件触发吗?有没有一种 AJAX-y 方式来做到这一点?
谢谢。
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/
jquery - jQuery延迟解析()不起作用
我做错了什么?
javascript - jQuery Deferred Ajax,JavaScript 范围问题?
我认为这很简单,但它不起作用(http://jsfiddle.net/QtjaG/上的实时示例):
由于$.resx.call(labels)
应该将this
上下文设置$.resx()
为labels
,不应该console.log(labels)
记录yo
吗?