如何将参数传递给“”调用的函数;jQuery然后”;

How can I pass arguments to the functions called by "jQuery then"?

本文关键字:函数 jQuery 然后 调用 参数传递      更新时间:2023-09-26

此处的完整代码: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!');
});