现有多条数据需要一条一条的发回服务端,目前的做法是在数组里循环,异步发回服务端。最近需求更改了,要求发回去一条之后,拿到成功信息之后再发送第二条。这样循环嵌套异步就不好实现了,如果数据多了可能会更加麻烦。前台使用angularjs,求大手给个思路。
三叔2016-11-12 11:39:49
function ajax(name, cb){ console.log('request:'+name); setTimeout(function(){ console.log('response:'+name); cb && cb(); }, Math.random()*3000); } function request(name){ return function(cb){ return function(){ ajax(name, cb); } } } var httpArr = []; for(var i = 0; i < 5; i++){ httpArr.push(request(i)); } httpArr.reduce(function(a, b){ return b(a); })(); // 输出 /* request:4 response:4 request:3 response:3 request:2 response:2 request:1 response:1 */