如何使用循环多次(同步)调用相同的异步函数?

时间:2015-10-15 14:19:25

标签: javascript for-loop asynchronous callback

我有一个名为" products"每个页面加载会有所不同。然后我需要调用一个函数" addProduct()"和#34;产品一样多次"很长,并使用该函数内每个索引的更改值。该函数很复杂并且使用异步调用(如.get)如何在执行完addProduct()之前停止for循环进入下一次迭代?

 function addProduct(productVariable){

      // (...do some long and asynchronous things with productVariable...)
 }

 //products array can vary in length on each page load
 products = ["prod01","prod02","prod03","prod04","prod05",...];

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

      var productAlter = product[i];

      //(...do some things with productAlter, but wait 
      // until the previous loop's addProduct() function 
      // has completed successfully)

      addProduct(productAlter);
 }

我一直在阅读有关回调和承诺的内容,但无论何时将它们放入其中,该函数似乎都是异步触发的。任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:4)

将使用Ajax的成功回调来调用__init__,如果索引达到最大值,那么它将停止。

addNextProdut