将$ .when()与函数的可变数组一起使用

塞尔加赫

我想使用when()来控制多个AJAX调用的完成,例如:

$.when(
    $.ajax( "test.aspx" ),
    $.ajax( "test2.aspx" ),
    ...
).then(...);

最后,我想将$ .when与变量数组的函数调用结果一起使用我不知道怎么做。

我们如何纠正下一个构造?这是不正确的问题,因为我们传递了一个Function对象数组,但没有传递函数调用的结果。

funcArray = [ 
    function() { return $.ajax( "test.aspx" ) }, 
    function() { return $.ajax( "test2.aspx" ) }
]

if( cond )
{
    funcArray.push( function() { return $.ajax( "test3.aspx" ) } )
}

$.when.apply( null, funcArray ).then(...); // how to correct here and probably somewhere else?
康弗里克

正如Mattias Buelens在评论中所说,问题是您传递了将承诺返回给您的函数,$.when而不是实际的承诺。

您必须迭代数组并返回每个函数调用的结果。

有几种方法可以这样做:

  • [最稳定]使用jQuery的$ .map函数:

    $.when.apply(null, $.map(funcArray, function (val) {
        return val();
      })
    );
    
  • 使用Array.prototype.map()

    $.when.apply(null, funcArray.map(function (val) {
        return val();
      })
    );
    
  • Firefox≥22还允许使用箭头功能的所谓语法

    $.when.apply(null, funcArray.map(fun => fun()));
    

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将go-sqlmock WithArgs()与可变数量的参数一起使用?

将numpy mgrid与可变数量的索引一起使用

如何将列表理解与可变数量的文件名列表一起使用?

如何将 ImmutableJS 的 reduce 函数与不可变累加器一起使用?

将 cin 与数组一起使用

将%s与数组一起使用

将vector :: insert与可变参数一起使用

如何使用Typescript将jest.spyOn与React函数组件一起使用

将 Find() 函数与对象数组一起使用,然后使用结果道具 (JSX)

将二维字符数组与函数一起使用

如何将 np.where 函数与数组每个元素的索引一起使用?

Python:将np.apply_along_axis与函数返回数组一起使用

我可以将指针算法与堆函数一起使用来存储数组吗?

将 Like 函数与 CDate 函数一起使用

将setTimeout与使用.animate的函数一起使用

Qt日志记录工具多线程,使用可变数量的参数调用信号和插槽形成另一个线程,将C和C ++混合在一起

将 LISTAGG 函数与连接表一起使用

将Foq与F#函数类型一起使用

将argv与函数一起使用时出错

将 setTimeout 与递归函数一起使用

将cfloop与queryfilter函数一起使用

如何将 Promise 与函数的输出一起使用?

将sass函数与!important一起使用

将OVER函数与generate_series一起使用

将扩展语法与函数Arguments对象一起使用

将.NET结构与WINAPI函数一起使用

将SQL聚合函数与多个联接一起使用

将Java函数与Apache Derby一起使用

将jasmie .toHaveBeenCalledWith()函数与Moment对象一起使用