2017-06-07 11 views
0

私はphpファイルに移動し、データベースから情報を返すjavascriptクラスで作成しました。私の関数async:falseをasyncに変更してください:JQueryとAjaxでtrueを返します。

この関数は実際にはうまくいきますが、適切な値を持つようにしようとしていますasync:true、しかし、私の関数はこの妥当性では機能しません。 (私はこの警告MSGがあります。L'利用ドールのXMLHttpRequestデ仕上がり具合synchroneシュルルFIL D'実行元本最終シュル・ラ・ナビゲーションドゥutilisateurnégatif原因デ息子への影響àEST OBSOLETEを

あなたはありますかどんなアイデアでも、どうすればそれを動作させることができますか?友人が「コールバック」を試してみるように言ったが、どのように動作するのかわからない。 P

非同期を忘れないでください:それは非同期である場合は

getInfoFromDB: function() { 
     var info; 
     $.ajax({ 
      url: "./fonctions/ajax/members.php", 
      type: "POST", 
      dataType: 'html', 
      success: function(data) { 
       info = data; 
      }, 
      async: false, 

     }); 
     return info; 
    } 
+0

成功にはすでにコールバック関数が含まれていますが、* who *がこのエラーをスローすることはありますか? –

+0

私は彼がそれを非同期のtrueに変更したいと思っています。同期と非同期のワークフローの間で切断される可能性が最も高いです。 – Taplar

答えて

-2
getInfoFromDB: function() { 
     var info; 
     $.ajax({ 
      url: "./fonctions/ajax/members.php", 
      type: "POST", 
      dataType: 'html', 
      success: function(data) { 
       return data; 
      },  
     }); 
    } 

チェックこれは、あなたは関数が応答を待機する前に返され、それを行う場合には、成功コールバックのoutsited返すことはできません。 trueは、デフォルトでは値です。

2

info以外を返すようにgetInfoFromDB()を変更する必要があります。たとえば、代わりにreturn a Promiseとすることができます。戻り値が$.ajax()の場合は、Promiseのようなものがdataに解決されます。

getInfoFromDB: function() { 
    return $.ajax({ 
     url: "./fonctions/ajax/members.php", 
     type: "POST", 
     dataType: 'html', 
    }); 
} 

しかし、その後、あなたは非同期動作をサポートするためにgetInfoFromDB()を呼び出し、そのどこにでも更新する必要があります。たとえば:jQuery.ajax()のドキュメントから

myObject.getInfoFromDB().then(function (info) { 
    doSomethingWith(info); 
}); 

:jQueryの1.5のよう$.ajax()によって返さ

jqXHRオブジェクトは、それらをすべてのプロパティ、メソッド、および約束の振る舞いを与え、約束インタフェースを実装します(詳細はDeferred objectを参照してください)。

関連する問題