最終的にUIのビューにデータを入力するメソッドを実行しようとしている状況があります。誰かが私を正しく導くことができるかどうかを見たかった。
jqueryの起動時に、いくつかの関数を次のように呼び出します。
function XYX(){
//Do Some stuff basically find some div's on UI and set them
//Make a ajax call
$.ajax(
{
}).
done(function(data){
//Use the data to set some values on UI
})
}
function PQR(){
//Do Some stuff basically find some div's on UI and set them
//Make a ajax call
$.ajax(
{
}).
done(function(data){
//Use the data to set some values on UI
})
}
ここで、2つのajax呼び出しから返される結果は、UIの設定フィールドであり、最終的には別のビューを設定するために使用します。このビューは、再びajax呼び出しを行い、独自の結果とXYZおよびPQRの結果を使用して何かを設定します。
function FINAL(){
//Do Some stuff basically find some div's on UI and set them
//Make a ajax call
$.ajax(
{
}).
done(function(data){
//Use the data and fields set by XYZ() and PQR() to set some values on UI
})
//Do some other stuff
}
AJAX呼び出しであるため、FINAL関数が呼び出されたときに利用可能な結果を信頼できず、3つを組み合わせてビューを生成できません。
このシナリオを処理するための最良の方法は何でしょうか。
まず、2つのメソッドからpromiseの値を返す必要があります。
function XYX(){
//Make a ajax call - return the Promise
return $.ajax(
{
}).
done(function(data){
//Use the data to set some values on UI
})
}
で同じことを行いPQR()
ます。
次に$.when
、両方が完了したときにアクションを実行するために使用します
$.when(XYX(),PQR()).then(function(){
//both XYX and PQR have completed
});
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加