当前位置: 首页 > 面试题库 >

JavaScript将一个Deferreds数组传递给$ .when()

乐正乐湛
2023-03-14
问题内容

HTML:

<a href="#">Click me!</a>
<div></div>

JavaScript:

function getSomeDeferredStuff() {
    var deferreds = [];

    var i = 1;
    for (i = 1; i <= 10; i++) {
        var count = i;

        deferreds.push(
        $.post('/echo/html/', {
            html: "<p>Task #" + count + " complete.",
            delay: count
        }).success(function(data) {
            $("div").append(data);
        }));
    }

    return deferreds;
}

$(function() {
    $("a").click(function() {
        var deferreds = getSomeDeferredStuff();

        $.when(deferreds).done(function() {
            $("div").append("<p>All done!</p>");
        });
    });
});

我要“全部完成!” 在所有延迟任务完成后$.when()出现,但似乎不知道如何处理一系列Deferred对象。“全做完了!”
首先发生是因为数组不是Deferred对象,所以jQuery继续进行并假设它已经完成。

我知道有人可以像这样将对象传递给函数,$.when(deferred1, deferred2, ..., deferredX)但是未知我要解决的实际问题中执行多少个Deferred对象。


问题答案:

要将值数组传递给通常希望它们是单独参数的 任何 函数,请使用Function.prototype.apply,因此在这种情况下,您需要:

$.when.apply($, my_array).then( ___ );

在ES6中,可以改为使用...传播运算符:

$.when(...my_array).then( ___ );

在这两种情况下,由于您不太可能事先知道.then处理程序需要多少个形式参数,因此该处理程序将需要处理arguments数组以检索每个Promise的结果。



 类似资料:
  • 问题内容: 我在烧瓶中有一个称为数组的函数,该函数接收一个列表并打印出列表中的项目: 在客户端,我想将名为str的javascript数组传递给该数组。我该怎么办?这就是我现在所拥有的,但是Flask没有读取添加的变量。有任何想法吗? 问题答案: Flask具有一个称为request的内置对象。在请求中有一个称为args的multidict。 您可以用来检索查询字符串的值。 当然,这需要一个get

  • 问题内容: 有谁知道如何将C#ASP.NET数组传递给JavaScript数组?示例代码也将很好。 对不起,如果我以前的人含糊不清。这个问题实际上很简单。为了简单起见,我在文件中声明: 现在,我想传递给客户端,并在JavaScript中使用数组中的数据。我该怎么做? 问题答案: 您可以使用ClientScript.RegisterStartUpScript将javascript注入Page_Loa

  • 问题内容: 我尝试了以下失败的尝试: 在函数a中,我可以使用arguments关键字来访问参数数组,而在函数b中,这些参数将丢失。有没有办法像我尝试的那样将参数传递给另一个javascript函数? 问题答案: 用于对in函数具有相同的访问权,如下所示:

  • 问题内容: 是否可以通过某种方式将一个函数的范围传递给另一个函数? 例如, 我宁愿直接访问变量,即,不使用类似或的任何东西,而只是直接使用或。 问题答案: 真正访问函数私有范围的唯一方法是在函数内部声明,这样就形成了一个闭包,允许隐式访问变量。 这是您的一些选择。 直接访问 在内部声明。 如果您不想在中使用,则可以将它们都放在更大的容器范围内: 这些是您可以直接使用的变量而无需任何额外的代码来移动

  • 问题内容: 这个问题已经在这里有了答案 : 如何将变量和数据从PHP传递到JavaScript? (20个答案) 5年前关闭。 我正在尝试将PHP数组变量转换为JavaScript变量。 这是我的代码: 我无法获得PHP数组的价值。 我该如何解决这个问题? 问题答案: 在下面的示例中,您具有一个PHP数组,然后首先通过一个PHP数组创建一个JavaScript数组:

  • 我试图弄清楚如何将存储在整数数组中的数组输出到jsp页面,最好是输入字段。 有人知道如何在jsp页面上输出数组吗? 我可以在Eclipse中将数组序列打印到控制台,但不确定如何使用jsp页面: 我使用以下解决方案为一个数字实现了这一点: Servlet(FibonacciServlet): Jsp页面(结果):