问题标签 [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 - 我可以在 document.ready() 上获得 jQuery Deferred 吗?
在我的脚本加载后,我正在发出 Ajax 请求以获取一些翻译。这应该总是在文档准备好后返回,因为我在页面底部加载我的脚本,但我仍然很好奇是否有可能在文档就绪状态下获得延迟对象。
这样就可以确保在执行任何其他操作之前,文档都已准备好并且 Ajax 调用成功返回,例如:
javascript - 发送异步请求时检测变量 != undefined 的更好方法
鉴于以下情况:
问题很清楚,这是一种异步情况,我想等到someScopedVariable
未定义,然后继续。
我想过使用 jQuery 的 .when() -> .done() 延迟调用,但我似乎无法让它工作。我还想过做一个循环来检查它是否已经定义,但这似乎并不优雅。
可能的选项1:
可能的选项2(糟糕的选项):
更新: 我相信我为了解释它而删除了太多的逻辑,所以我添加了一些。这样做的目的是为这些数据创建一个访问器。
jquery - 转换或替换 jquery.ajax 承诺
我希望转换 ajax 调用返回的数据并将其传递给另一个插件的构造函数。我认为如果插件的选项接受一个对象作为它的数据或一个返回数据的函数,这将允许我使用一个延迟对象,即 jQuery.ajax。
问题是我需要在客户端转换数据,并且看不到如何使用 jQuery.Deferred Object 执行此操作。有很多不同复杂性的例子,但处理传递和转换参数的例子并不多。
这是一些代表我想要实现的代码。
就目前而言,useTransformedData 回调似乎总是接收 rawData 而不是transformedData。
我正在尝试的是否可能,如果可以,有人可以帮助我指出正确的方向吗?
javascript - 如何添加延迟到现有 $.when 的新 jquery?
我正在重构一个使用传统回调模式的资源加载函数来代替使用 jQuery Deferreds。
这个函数接受 url 数组,为每个资源创建一个新的 Deferred 对象,创建一个$.when
Deferred 对象来监视它们,并返回该$.when
对象的 Promise。
这是该方法的简化版本:
这很好用。
我的问题:在旧脚本中,不仅会theLib.getResources()
基于用户操作或事件进行调用,而且还会定义一个主资源列表,当用户不采取任何操作(即阅读一篇文章)时应用程序将“流式传输”这些资源)。
当用户采取行动时,其中一些流式资源将与可以手动调用的资源相同。该脚本足够聪明,不会通过跟踪加载的内容来两次加载资源。
它还跟踪theLib.isLoading
. 该函数的开头看起来像这样:
我不能再这样做了,因为我需要返回一个 Promise 对象。
我知道我可以检查theLib.currentDeferred.isResolved()
。那时,如果没有解决:如何将更多延迟对象添加到$.when
正在监视的队列中?
ajax - 等待 jQuery AJAX 响应
我有一个页面,使用 jQuery .ajax 调用 100 次(异步:true),问题是,当它们都被加载时,我需要系统等待所有 100 个调用返回,然后再继续。我该怎么办?
提前致谢!:)
更新:
这些调用是在 for() 循环中进行的(其中有 100 个 :))
jquery - jquery deferred 把失败变成成功
因此,在使用 jQuery 延迟并$.when
并行加载许多对象时。
现在,b.ajax()
有时会失败,但我实际上不在乎。我只想等到所有调用都完成后再调用complete()。
不幸的是,一旦b
失败,就会when()
拒绝,并且永远不会触发then()
回调。这是 AFAIK 的预期行为$.when()
,但在这种情况下不适合我。
我实际上想要一种方式说:
或者也许有不同的使用方式when()
,或更合适的构造?
jquery - jQuery 延迟与 jqXHR
我用:
但是 1.5 版本添加了延迟对象。
Q:一般来说,你什么时候使用success、error和complete方法,而不是deferred then、done和fail的新热度?
javascript - 在 jQuery ($.Deferred) 中排队可选的 AJAX/函数调用?
我希望在 JavaScript/jQuery 中对任意数量的可能可选函数调用进行排队。例如,在运行第二个(或第三个、第四个等)函数或 AJAX 调用之前,我可能需要确保用户已通过身份验证并设置了 cookie。
我考虑使用最近添加的 jQuery.Deferred 来执行此操作,但发现调用的触发顺序无关紧要(真正的异步样式)。另外,我读到一旦解决了 Deferred 实例,就不可能取消解决它。
这就是我目前所处的位置。最初,我正在考虑将 Deferred 实例设置为已解析,然后在堆栈中出现可选函数时取消解析它。
我的问题是,在纯 JavaScript/jQuery 中排队(0 到 N)AJAX 调用的最佳方式是什么?(不使用插件)。
达!
编辑 2:已解决! 这是一些工作示例,一个不带 AJAX,一个带: https ://gist.github.com/1021429 https://gist.github.com/1021435
jquery - 延迟根本无法处理异步 Ajax 请求
我有多个由 Ajax 异步请求填充的 HTML 列表。当所有这些请求都完成后(其中有很多),我需要通过选择与我的客户记录对应的列表项来填充表单。
我正在尝试使用延迟来完成此操作,但是该函数在填充列表之前很久就触发了。有任何想法吗?
实际应用代码:
javascript - 在一些 jquery ajax 之后如何做其他 jquery 事情
我正在使用 PHP。我想完成 jQuery AJAX 流程,(完成流程并在数据返回主页后)。
然后做下一个 jQuery 的事情。关于如何做的任何想法?