【Angularjs】PromiseでforEachで同期処理で順次実行する
こちらのコードを実行すると、testが1秒間隔で3回順次実行される。
var test = function() {
var deffered = $q.defer();
$timeout(function() {
deffered.resolve();
}, 1000);
return deffered.promise;
};
var deffered = $q.defer();
var promise = deffered.promise;
promise
.then(function() {
var deffered = $q.defer();
var promise = deffered.promise;
for (var i = 0; i < 3; i++) {
// [1, 2, 3].forEach(function(v) { // forEachも一緒
promise = promise.then(function() {
return test();
})
.then(function() {
var deffered = $q.defer();
deffered.resolve();
return deffered.promise;
});
});
deffered.resolve();
return promise;
});
deffered.resolve();やりたかったのはこれだけ。以上です。