问题标签 [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.
javascript - 将延迟数组传递给 $.when()
这是一个人为的例子:http: //jsfiddle.net/adamjford/YNGcm/20/
HTML:
JavaScript:
我想要“全部完成!” 在所有延迟任务完成后出现,但$.when()
似乎不知道如何处理延迟对象数组。“全部做完!” 首先发生是因为数组不是 Deferred 对象,所以 jQuery 继续并假设它刚刚完成。
我知道可以将对象传递给函数,$.when(deferred1, deferred2, ..., deferredX)
但不知道在我试图解决的实际问题中执行时会有多少延迟对象。
javascript - 有没有办法在 jQuery 中创建延迟对象包装器
我已经阅读了很多关于新的 jQuery.Deferred 对象的内容。真正有用的一件事是能够将现有对象转换为延迟对象,然后您将获得 100% 的灵活性来获取数据。
我在想一些事情
有谁知道这种方法是否已经存在,或者如何创建一个?
javascript - jQuery when/then/fail with concurrent ajax requests:哪个请求失败了?
想象一个场景,我们想要在 'foo' 和 'bar' 的并发请求成功完成后做一些事情,或者如果其中一个或两个都失败则报告错误:
我如何确定 1) 对“foo”的请求是否失败,或者 2) 对“bar”的请求是否失败,或者 3) 如果两者都失败了?
javascript - jQuery Deferred 回调的参数是什么?
在 jQuery 中,deferred.then添加了要在 Deferred 对象被解析或拒绝时调用的处理程序。
- doneCallbacks — 一个函数或函数数组,当 Deferred 被解析时调用。
- failCallbacks — 当 Deferred 被拒绝时调用的函数或函数数组。
在以下示例中,这些“完成”和“失败”回调函数的参数是什么?
它是否取决于 Deferred 对象的类型?例如:
'x' 会有不同的值吗?
javascript - jQuery.when - 当所有延迟不再“未解决”(已解决或被拒绝)时回调?
当多个 Deferred 对象传递给jQuery.when时,该方法从一个新的“主” Deferred 对象返回 Promise,该对象跟踪它已传递的所有 Deferred 的聚合状态。
该方法将要么
- 在所有 Deferred 解决后立即解决其 master Deferred,或
- 只要其中一个 Deferred 被拒绝,就拒绝其 master Deferred。
如果主 Deferred 被解析(即所有 Deferred 解析),则将传递给 jQuery.when 的所有 Deferred 的解析值传递。例如,当 Deferred 是 jQuery.ajax() 请求时,参数将是请求的 jqXHR 对象,按照它们在参数列表中给出的顺序:
在多个 Deferred 的情况下,其中一个 Deferred 被拒绝,jQuery.when IMMEDIATELY FIRES 为其主 Deferred 的失败回调,即使此时某些 Deferred 可能仍未解决:
当传递给 jQuery.when 的所有 Deferred 不再“未解决”(即,所有“已解决”或“拒绝”)时,我需要触发回调。我可以发送带有 200 个 OK 代码的 JSON 对象(而不是发送带有 404 Not Found 错误状态代码的 JSON)并在 done() 方法中确定成功/错误,但我更愿意让我的 API 保持 RESTful。我怎样才能做到这一点?
jquery - 带有延迟的 jQuery ajax 缓存(当同时触发重复请求时)
我想实现一个健壮的 ajax 缓存并寻找合适的模式——可能使用新的 jquery 1.5.2 延迟对象。
这里的最佳答案:
接近了,但失败的地方是如果同时触发两个 ajax 请求,仍然会有 2 个请求到服务器。由于尚未收到响应,因此尚未填充缓存。
我想要一个只向服务器发出 1 个请求的实现,但会将响应返回给两者。
ajax - jquery 的 promise 方法是如何真正起作用的?
我真的不明白什么delegate
和promise
是。
根据文档 -
delegate
将选择器和事件绑定到某种包装容器,该容器可以在以后再次用于当前和未来的项目。promise()
如果新加载的所有内容都匹配,则会将事物重新映射回第一次有界时。可能我不是很懂这个promise方法。
如果包装器仍然存在,但包装器容器中的内容已更改和/或通过重新加载Ajax
怎么办?为什么事件没有像第一次绑定时那样触发或工作?
是的,我去过文档页面,我只是不完全理解他们的解释。
jquery - jQuery 延迟和承诺与 getScript
我一直在研究 jQuery 中的新(ish)延迟对象,我在这里偶然发现了这篇网站文章。
在文章中是一些设计用于缓存脚本的代码,因此它们不会被多次请求。
$.getScript()
这对我来说是一种确保脚本只有在你成功 的情况下才会被执行的方法。
就我的实验而言,即使我提供了不正确的 url,错误回调也不会被调用。
我错过了一些明显的东西还是代码示例错误?
注意:我会在网站上问过这个问题,但评论系统不起作用。:-S
jquery - 使用 .each() 延迟的 JQuery
有什么想法可以将 JQuery 的延迟方法与检测所有更改的表单并将每个表单作为 Ajax 帖子提交的功能一起使用吗?
如果我只列出大量表单提交,我可以得到同样的工作,但如果我使用......
我正在尝试使用的代码的更完整版本在这里...... 在 JS Fiddle
提前致谢!