promise
を使用して関数の同期操作を実行したいとします。私はinsert
関数に挿入されるデータを渡すループを持っていますし、1行を挿入した後、いいえをチェックしたいと思います。の行がテーブルに存在するので、私はselect
の操作を実行しています。ループ内で約束を使用した順次呼び出し
しかし、3つのレコードがある場合は、3つのレコードがすべて挿入され、その後にselect関数が実行されるという問題があります。 1つのレコード選択関数の挿入が呼び出された後に私が望むものが得られます。ここ
は、コード全体としての私の擬似コードは、これは、非同期のインサートのシリーズを実行する、と仮定することによって引き起こされているなどの操作の多くはfor(var i=0; data.length ; i++){
self.executeFeedbackTrack(data);
}
executeFeedbackTrack:function(callInfo){
var self=this;
return self.insertFeedbackTrack(callInfo).then(function(data){
console.log("insertFeedbackTrack status "+status);
return self.getFeedbackTrack();
});
},
getFeedbackTrack :function(){
return new Promise(function(resolve,reject){
var objDBFeedbackTrack = new DBFeedbackTrack();
objDBFeedbackTrack.selectFeedbackTrack(function(arrayCallRegisters){
if(arrayCallRegisters){
console.log("notification.js no. of feedbacks "+arrayCallRegisters.length);
resolve(arrayCallRegisters.length);
}
});
});
},
insertFeedbackTrack :function(callInfo){
return new Promise(function(resolve,reject){
var objDBFeedbackTrack = new DBFeedbackTrack();
objDBFeedbackTrack.insertFeedbackTrack(callInfo.callNumber,callInfo.callServiceType,function(status){
resolve(status);
$('#loader').hide();
});
});
}
回答を参照してください。 –