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

JavaScript,React-同时发送多个ajax调用

萧心远
2023-03-14
问题内容

在我的React应用程序中,我有一个参数数组(例如一些ID),这些参数应该用作ajax调用队列的参数。问题是该数组可能包含1000多个项目,如果我仅使用forEach循环递归地进行ajax调用,则浏览器页面最终会在每个请求得到解决之前停止响应。

是否有一种技术/库可以允许以异步方式一次发送5个请求,例如,一次异步发送ajax请求,并且仅在这些请求完成后才继续下一个5?

后续问题:

反应-控制多个Ajax调用


问题答案:

如果您不受es版本的限制并且可以使用es6,则应该考虑异步等待

async function makeBatchCalls(arrayIds, length) {

    let test = arrayIds.reduce(

        (rows, key, index) => (index % length == 0

            ? rows.push([key])

            : rows[rows.length - 1].push(key)

        ) && rows,

        []

    );



    let Batchresults = [];



    //convert them to two dimensionl arrays of given length [[1,2,3,4,5], [6,7,8,9,10]]

    for (calls of test) {

       Batchresults.push(

           await Promise.all(

               calls.map((call) => fetch(`https://jsonplaceholder.typicode.com/posts/${call}`))

           )

       );

    }



    return Promise.all(Batchresults); //wait for all batch calls to finish

}



makeBatchCalls([1,2,3,4,5,6,7,8,9,10,12,12,13,14,15,16,17,18,19,20],3)

async / await用于等待异步调用的确切情况。基本上在异步函数内部,直到解决了等待问题,然后暂停执行。在开始使用承诺和生成器之前,您需要了解它们。



 类似资料:
  • 问题内容: 当我使用JQuery一起发送两个ajax请求时,响应一起出现 例如 ajax.php,ajax2.php是两个文件,其中包含一个虚拟的for循环大约需要5秒钟。 萤火虫萤幕 POST本地主机/ajax.php 200 OK 4.77s POST本地主机/ajax.php 200 OK 4.37s 在这里,每个请求大约需要5秒钟才能执行… 当我在symfony做相同的例子时,我得到了不同

  • 问题内容: 总体概述 大家好,我有4个跨度,其中动态输入了值,但出于这个问题的目的,我输入了一些值。我想从跨度中获取值,使用ajax将其发送到php文件。如果它们符合php文件中设置的条件,则警告一些消息。这是我到目前为止所拥有的.. HTML 它基本上包含跨度和该跨度内的一些数字,下面的按钮具有一个onclick事件,以调用名为check的JavaScript函数。 JavaSript 这基本上

  • 问题内容: JSF是否可以进行将同时执行的ajax调用(在开始新的调用之前不等待先前的调用完成)? 问题答案: 不,它们被规范明确地排队,没有任何例外。参见JSF 2规范的 第13.3.2章: 13.3.2 Ajax请求队列 在将所有Ajax请求发送到服务器之前,必须将它们放入客户端请求队列中,以确保按发送顺序处理Ajax请求。在队列中等待时间最长的请求是下一个要发送的请求。发送请求后,Ajax请

  • 问题内容: 我有一个跨子域的jQuery ajax调用,该子域可以正常工作,除非它不发送cookie。有什么办法可以做到这一点? 问题答案: 这听起来像我的预期行为。Cookies是每个域(包括子域)。但是我认为您可以通过以下方式强制使用: 这是完全未经测试的,所以让我知道它是否有效;) 编辑 :实际上看起来根本不可能…看这里:如何在JavaScript中使用XMLHttpRequest设置Coo

  • 问题内容: 我正在尝试使用j查询$ .ajax方法向我的php脚本发送多个数据,但是当我连接多个数据时我只能传递单个数据我的php脚本tat中出现未定义的索引错误,意味着发出了ajax请求,但没有数据发送,我需要知道如何格式化多个数据以依次将其发送到名称为vale对的处理脚本中,这是我写的 问题答案: 您可以创建一个键/值对的对象,jQuery将为您完成其余工作: 这样,数据将被自动正确编码。如果

  • 问题内容: 我正在将ajax请求发送到php文件,如下所示: 这是在提交时调用函数时发送的,如下所示: 问题是用户ID php变量没有被ajax发送到check_code.php页面。或至少我似乎无法将ID回显到页面。 这是将多个值传递到服务器端页面的正确方法吗?没有userid传递,仅传递代码即可正常工作。 谢谢你们 :) 问题答案: 这是数据的格式: 在您的情况下(请注意请作为分隔符): 但是