如何将参数传递给“jQuery then”调用的函数?

时间:2014-04-09 15:59:01

标签: javascript jquery asynchronous

这里的完整代码:      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并仍然按顺序调用它们?

1 个答案:

答案 0 :(得分:1)

试试这个会起作用

$.when(func1('arg1')).then(function(){
    func2('arg1');}).then(function(){
        func3('arg1','arg2');}).then(function () {
             console.log('all done!');
});