遞歸函數我有這樣的代碼:AngularJS上承諾
$scope.play = function (audio) {
var deferred = $q.defer();
api.play(audio).then(function() {
deferred.resolve();
}, function (err) {
deferred.reject();
console.log(err);
});
return deferred.promise;
};
我有audio
,我使用我的控制器內,並傳遞給$scope.play
一個陣列。但是,使用下面:
var playIndex = 0;
$scope.play(audios[playIndex]).then(function() {
playIndex++;
$scope.play(audios[playIndex]);
});
這適用於前兩種音頻我當然有數組中,因爲我不檢查第二.play
的回報。我怎樣才能使這個循環成功通過所有的音頻陣列?
在此先感謝。
包裝現有承諾是一種反模式。你的函數應該是'$ scope.play = function(audio){return api.play(audio); }'。就是這樣,真的。 –