这里的完整代码: http://jsfiddle.net/BurFz/ http://jsbin.com/dagequha/1/edit?js,console
/**
* 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延迟/保证技术按顺序调用它们。它工作正常,但问题是我无法传递这些函数参数。 如果您运行我的JS Bin(JSfiddle)示例,您会看到它工作,向下滚动并使用第二个注释部分(带参数的部分)而不是第一个,它将停止正常工作。如何将参数传递给func1,func2和func3并仍然按顺序调用它们?
答案 0 :(得分:1)
试试这个会起作用
$.when(func1('arg1')).then(function(){
func2('arg1');}).then(function(){
func3('arg1','arg2');}).then(function () {
console.log('all done!');
});