在 Javascript 中发出顺序 POST 请求的最佳方法

所以我有一个数组,其中包含需要作为需要发出的 POST 请求的有效负载的一部分发送的数据。现在,这些需要按顺序进行,因为我需要显示特定的有效载荷,然后是结果(结果是使用有效载荷发出 POST 请求后返回的响应),然后是下一个有效载荷,然后是下一个结果和等等,在我的页面上。我只是想知道实现这一目标的最佳方法是什么。所以这就是我目前的处理方式:


for (var i = 0; i < quotesList.length; i++) {

var response = $.ajax({

      type: "POST",

      url: url,

      data: JSON.stringify(quotesList[i]),

      success: add_to_page,

      },

      timeout: 300000,

      error: function(){

            console.log("Some Error!")

        },

      contentType: "application/json"

})

显然,这里出现的问题是无法保证正确获得该序列,而且我不太确定如何准确跟踪有效负载,因为尝试将其添加为成功功能的一部分只会得到我最后一个元素(大概是最后一个被触发的请求)


神不在的星期二
浏览 338回答 1
1回答

函数式编程

您可以尝试以下操作。let quotesListIndex = 0;function sendAjaxCall() {&nbsp; if (quotesListIndex < quotesList.length) {&nbsp; &nbsp; var response = $.ajax({&nbsp; &nbsp; &nbsp; type: "POST",&nbsp; &nbsp; &nbsp; url: url,&nbsp; &nbsp; &nbsp; data: JSON.stringify(quotesList[quotesListIndex++]),&nbsp; &nbsp; &nbsp; success: function () {&nbsp; &nbsp; &nbsp; &nbsp; //... Add code here&nbsp; &nbsp; &nbsp; &nbsp; sendAjaxCall();&nbsp; &nbsp; &nbsp;// Call the function again for next request&nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; },&nbsp; &nbsp; &nbsp; timeout: 300000,&nbsp; &nbsp; &nbsp; error: function () {&nbsp; &nbsp; &nbsp; &nbsp; console.log("Some Error!")&nbsp; &nbsp; &nbsp; },&nbsp; &nbsp; &nbsp; contentType: "application/json"&nbsp; &nbsp; })&nbsp; } else {&nbsp; &nbsp; return;&nbsp; }}添加一个全局变量来跟踪索引。并递归调用函数。一旦索引达到数组大小,然后从函数返回。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript