如何在java脚本中将循环(for)转换为promise

时间:2017-08-15 09:57:39

标签: javascript jquery promise

我使用ajax(xhr)为服务器实现了请求数据的java脚本。

但不知何故,循环不是承诺。

我试图实施Promise但总是失败。

这是我想要转换成承诺的javascript

    var resulA = ajaxA(a);
    For(resultA){
       var resultB = ajaxB(url?param1=resultA.id);
       for(resultB){

           var resultC = ajaxC(url?param1=resultA.id¶m2=resultB.id);
           for(resultC){
           }

        } 
    }

你能给我一个如何将javascript变成Promise的指南吗?

编辑: 这里是我想要使用的java脚本承诺

var xhr = $.getJSON('${pageContext.request.contextPath}/someURL.action?');
        console.log("after load ajax");
xhr.done(function(data){

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


         var xhrPolygon =            $.getJSON('${pageContext.request.contextPath}/Koordinat/getKoordinateAja.action?idArea='+data[i].id);
                      xhrPolygon.done(function(resultData){
if(resultData.length>0){
                             for (var j = 0; j < resultData.length; j++) {
                                    var koordinat = [resultData[j].areaLng,resultData[j].areaLat];
                                    console.log(koordinat);
                             }
                            }
                        }); 



}
});

1 个答案:

答案 0 :(得分:0)

javascript xhr并不是建立在承诺之上,但是新的fetch在这里有文档https://github.github.io/fetch/

如果你需要在这里创建一个承诺,你有一些代码

let promise = new Promise((resolve, reject) => {
   if(success){
     resolve();
   }
   else{
    reject()
}
});

promise.then(r => console.log(r), e => console.log(e));