使用延迟和承诺循环ajax调用
Looping ajax calls using deferred and promises
我是jquery $.Deferred
的新手,似乎我不能理解关于异步处理的一大堆东西。
假设我想循环遍历用户名并登录它们,处理一些东西,然后注销(这可能不需要包含在这个问题中)。
如果我有这两个用户/通行证组合,我想循环它们,登录它们并执行必要的操作。
[{"username":"user1","password":"HardToKnow"},
{"username":"user2","password":"HardToKnow"}]
我根据我读到的创建了这个函数,尽管我不确定它是如何工作的。
function login(user, pass) {
var d = $.Deferred();
$.post(
'http://www.domain.com/login',
{
user: user,
passwrd: pass
}
).done(function(s){
d.resolve(s);
}).fail(d.reject);
return d.promise();
}
上面的函数显然是用于登录的,现在我将有另一个函数,它必须有另一个异步请求。
function setTodo(user,pass) {
return login(user,pass)
.pipe(function(s){
if (s.indexOf('<li class="greeting">Hello <span>' + user + '</span></li>')) {
return $.post().....?
}
return set(usr, pw);
});
}
上面的函数,虽然不完整,这只是我的想法,将尝试设置一个待办事项,稍后将调用另一个函数来提交或完成待办事项
function submit(user, pass) {
return setTodo(user, pass)
.pipe(function(s){
// another $.post() here...
}
}
问题,我做对了吗?延期吗?如何遍历登录凭据?我尝试使用$。每个和ajax请求它们,但正如预期的那样,它们同时执行,因为它是异步的。
是。总的来说,你做的是对的,但请注意,pipe
被弃用了,而then
取而代之。
以下是then
的文档
相关文章:
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 一个ajax循环有两个输出错误innerHTML
- 未执行Ajax循环的Javascript之后的代码
- jQuery延迟了ajax调用的循环
- Chrome浏览器“;挂起”;同时在循环中执行AJAX请求
- Ajax内部的Ajax在循环中
- Ajax json到for循环中
- 带有一个回调的多个循环ajax请求
- 停止循环 AJAX 查询
- 如何在JQueryWhen-Then语句中循环Ajax请求
- 用于循环ajax潜在竞争条件的Javascript
- 循环ajax调用,直到按钮被按下
- 使用延迟和承诺循环ajax调用
- 循环ajax有时只提交
- 如何循环ajax响应并在html中显示它?
- 使用循环AJAX匹配id和子id,并将它们与Neo4j关联
- 如何在jQuery返回的数组内循环Ajax成功
- 如何循环ajax请求(使用jquery)和jsp
- 逐一循环ajax请求并逐一显示结果
- jQuery for循环ajax调用和等待,直到所有完成