我之前在jQuery中使用了promise-但是在将其应用于这种情况时遇到了麻烦。我更喜欢使用$ .when()和$ .done()方法来实现这一点。
据我了解,我需要构建一个$ .Deferred对象,该对象记录请求并在请求完成时触发回调。在下面的代码中,回调在ajax请求 之前 触发 ,
而不是在之后触发-也许我只需要睡一会
我知道我的代码不完整,我一直在努力通过添加for循环来应用它。
http://jsfiddle.net/whiteb0x/MBZEu/
var list = ['obj1', 'obj2', 'obj3', 'obj4', 'obj5'];
var callback = function() {
alert("done");
};
var requests = [];
var ajaxFunction = function(obj, successCallback, errorCallback) {
for(i = 0; i < list.length; i++) {
$.ajax({
url: 'url',
success: function() {
requests.push(this);
}
});
}
};
$.when($.ajax(), ajaxFunction).then(function(results){callback()});
to的参数$.when
应该是的返回值$.ajax
,也不必分别调用-这没有任何意义。您想要这样的东西:
for (i = 0; i < list.length; i++) {
requests.push($.ajax(...));
}
$.when.apply(undefined, requests).then(...)
之所以.apply
需要这样做,是因为$.when
可以接受多个参数,但不能接受参数数组。 .apply
本质上扩展为:
$.when(requests[0], requests[1], ...)
这还假定可以按任何顺序完成请求。
http://jsfiddle.net/MBZEu/4/-注意,在所有成功消息之后,“完成”已记录到控制台。
问题内容: 我正在使用以下node.js代码从某些url下载文档并将其保存在磁盘中。我想知道何时下载该文档。我没有看到使用pipe进行任何回调。或者,下载完成后是否可以捕获任何“结束”事件? 问题答案: 流是,因此您可以听某些事件。如您所说,有一个请求事件(以前是)。 有关可用的事件的更多信息,请查看流文档页面。
问题内容: (做了很多修改,因为它是类的一部分,等等。) 目前,这有点让人讨厌,因为计时器的使用似乎很垃圾。我会使用$ .when和$ .done,但是我不知道可能有多少房间,所以我不知道什么时候放什么。 如何确保仅在所有AJAX请求返回后才调用run_the_rest_of_the_app()? 问题答案: 在进行AJAX调用之前, 完成AJAX调用后(在回调中):
我在地图中的几个位置进行反向地理编码,并希望将其包装为某种常用方法。我所拥有的是作为工作起点的: 但是,如果我想在我的完成方法中添加另一个参数,将会向我的视图返回错误,如下所示: 如果error为,那么我的将失败,因为错误为nil且访问错误。但我不能这样做,因为参数与完成处理程序不匹配。 因此,如果我有一个nil错误,我将如何调用我的完成处理程序?
视频处理完成后的回调 当处理完毕视频后(上传、转码、审核都完成后),Spark 平台会通过由上传接口入参 notify_url 指定的 HTTP/HTTPS 地址以 GET 方式发起回调。若用户网站地址使用HTTPS协议进行数据安全传输时,用户需保证其拥有的CA证书是合法的。 用户指定的 notify_url 符合以下四种 notify_url 格式之一即为合法: 1、http://domain
问题内容: 我正在尝试找到一种将jQuery自动完成与回调源结合使用的方法,该回调源通过ajax json对象列表从服务器获取数据。 有人可以给些指示吗? 我用谷歌搜索,但找不到完整的解决方案。 问题答案: 带有源代码的自动完成文档中的完美示例。 jQuery HTML
问题内容: 我的网络服务返回一个JSON对象,如下所示 即,当我将此地址放入chrome浏览器中时,我可以到达上面。 我正在尝试在浏览器中阅读此内容,以便可以创建一个下拉选项…但是从以下代码开始我一无所获: 我总是在警报框中。我用fiddler2再次检查了Web服务请求/响应是否正常,我什至可以拦截Web服务和浏览器之间的json对象。 我也试过 我又得到了空。 我已经看过Ajax要求的json响