此处的完整代码:http://jsfiddle.net/BurFz/http://jsbin.com/dagequha/1/edit?js,控制台
/**
* Running this will work
*/
func1('arg1').then(func2).then(func3).then(function () {
console.log('all done!');
});
/**
* But this one doesn't work
*/
func1('arg1').then(func2('arg1')).then(func3('arg1', 'arg2')).then(function () {
console.log('all done!');
});
我的代码中有3个异步函数,我使用jQuery延迟/承诺技术顺序调用它们。它工作正常,但问题是我不能传递这些函数参数。如果你运行我的JSBin(JSfiddle)示例,你会发现它有效,向下滚动并使用第二个注释部分(带参数的部分)而不是第一个,它将停止正常工作。如何将参数传递给func1、func2和func3,并且仍然按顺序调用它们?
试试这个,它会工作
$.when(func1('arg1')).then(function(){
func2('arg1');}).then(function(){
func3('arg1','arg2');}).then(function () {
console.log('all done!');
});