2017-08-15 4 views
-3

私は、ajax(xhr)を使用してサーバーに要求データ用のJavaスクリプトを実装しています。Javaスクリプトでループ(for)を約束する方法

しかし、どういうわけか、ループは有望ではありません。

プロミスを実装しようとしましたが、失敗しました。

これはあなたが私に約束に上記の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ですここ 私はXHRは約束の上に構築されていませんが、新しいフェッチは、ここにあなたがいる場合のドキュメントhttps://github.github.io/fetch/

を持っていないjavascriptの約束

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

あなたのコンソールにいくつかのエラーが表示される必要があります。 – Script47

+4

注意:JavaとJavaScriptは同じ言語ではありません。オーストリアとオーストラリアは同じ国ではありません。 – PeterMader

+0

おそらく、[*非同期呼び出しからの応答を返すには?*](https://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous -コール);いくつかの答えは、一連の約束事(1つずつ)または並行して(一度にすべて、それらがすべて終了するのを待って)一連の約束事を処理する方法について話しています。 –

答えて

0

を使用するJavaスクリプト:編集した

あなたはいくつかのコードをここに約束を作成する必要があります

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

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

次に、1つ以上の約束、Promise AとPromise B、Promise Aからの結果にいくつかの特性を必要とするBを約束し、Promise Aの結果をTe Promise Bに渡し、約束Bの関数からそれを使用することを約束する。 .then(R => {// が何かにconsole.logを行う –

+0

promise.then(R => {; 戻りR //は にconsole.log(R、 'A')何かを}) (R、 'B'); 戻りR; 戻りR; }) }) .then(R => { //何か にconsole.log(R、 'C' を行います)。 –

+0

あなたは約束の返答を返す必要があります –