dojo domreadyブロック内の行に4つの関数を実行しようとしましたが、これらの関数の実行後にブールフラグを設定したいのですが、非同期的に起動され、フラグはこれらの関数の完了前に設定されます。つまり、関数は前の関数が完了するのを待たずに、ただ開始されて次の関数に移ります。のみすべての4つの機能の実行後にフラグを設定する方法 dojoの以前の関数の完了後にのみ関数を実行する方法
require([ 'dojo/domReady!' ], function() {
boolean flag=false;
function1();
function2();
function3();
function4();
flag=true;
});
私はフラグのonloadを設定していますどこまず私は、準備ができ道場での最初の呼び出しを実行しています、私の元のコードを共有しています偽最初
require([ 'dojo/domReady!' ], function() {
onload = false;
getQuoteOption();
});
その後、関数「getQuoteOption()」で私はAJAX呼び出しを発射していますと、いくつかのJSONデータをフェッチ取得する
function getQuoteOption(){
var reqParams = addQuoteReqParams(reqParams);//getting json input data
var request = require("dojo/request");
request.get(url, {
query : {
inputJson : reqParams
},
handleAs : "json",
preventCache : true
}).then(function(response) {
configureQuoteFieldData(response);
configureIrregularFrequencyData(response);
onload=true;
}, function(error) {
console.log(error);
});
}
ajax呼び出しのコールバック私は2つの関数 'configureQuoteFieldData(response)'と 'configureIrregularFrequencyData(response)'を実行していて、2つの元の関数が完全に実行されたのにフラグonloadが設定されているその前に真実に。私もここであなたがコールバックを受け入れるかpromiseを返すために、あなたの関数を作成する必要が
function configureQuoteFieldData(quoteFieldData) {
var registry = require("dijit/registry");
registry.byId('form_quoteData').set('value', quoteFieldData);//setting data to form
}
function configureIrregularFrequencyData(obj) {
var tmpArray = [];
for (var i in obj) {
tmpArray.push(obj[i]);
}
irregularPayMonths['irregularData'] = tmpArray;//saving to global variable
}
を私はあまりにもそれを試してみました.... – nithinalways
あなたは私にその出来事を見せてもらえますか – nithinalways