我有一些代码可以在链中完成一组不同的操作。这组操作本身是在循环中执行的。由于我正在处理的系统的性质,操作集需要同步执行(即下一组操作在第一组完成之前无法执行)。异步执行会抛出远程处理器(不在我的控制范围内),并导致代码失败。现在,我能够让它工作的唯一方法是使用警报框,这真的很蹩脚,不是一个选择。我试过了:
- 使用 $.ajax,并将 async 设置为 false
- 使用睡眠功能
- 警报框(在绝望中使用)
这是代码 - 有什么想法吗?:
$('input:checked').each(function(index){
//get the item's location id
var currentInput = $(this).val();
var copyUser = function(){$.get(urlCopyPrefix + currentInput + urlSuffix);}
var moveUser = function(){$.get(urlMovePrefix + moveLocation + urlSuffix);}
var cleanup = function(){
var newSibling = $('#module-' + moveLocation);
newSibling.before('<li>New Line</li>');
alert('done');
}
/* --> THIS IS THE CODE IN QUESTION <-- */
$.when(copyUser()).pipe(moveUser).then(cleanup);
});