Этот фрагмент является частью более крупной директивы:Почему загрузка не выполняется, и поэтому обещания не решены?
var imageArray = [];
for (var i = 0; i < $scope.abbreviations.length; i++) {
imageArray[i] = new Image();
imageArray[i].src = $scope.abbreviations[i].imgPath;
};
console.log(imageArray);
function preLoad() {
var promises = [];
function loadImage(src) {
return $q(function (resolve, reject) {
var image = new Image();
image.src = src;
image.onload = function() {
resolve(image);
console.log('onload:', src);
};
image.onerror = function (e) {
reject(e);
console.log('onerror:', e);
};
})
}
imageArray.forEach(function (src) {
console.log('forEach:', src);
promises.push(loadImage(src));
});
return $q.all(promises).then(function (results) {
console.log('Promises resolved with', results);
$scope.results = results;
});
}
preLoad().then(function() {
console.log('Ready for next activity...');
});
и этот скриншот показывает журналы в моей консоли:
Вопрос: почему функция загрузки не удается, и, как следствие, обещания не решены?
Похоже, журналы дают вам ключи. Это связано с тем, что ваши изображения загружаются с ошибкой в событии с ошибкой, которые отвергают обещание, и вы только цепляетесь через «then» блок обещаний, возвращаемый q.all, цепляйте блок catch и видите. q.all обещание будет разрешено _ только, если все основные обещания будут разрешены. – PSL
@PSL cheers Я вижу это. Почему загрузка происходит неудачно? спасибо –
Это должен быть ваш вопрос правильно? то это не имеет ничего общего с обещаниями -> 'почему функции загрузки не работают и, как следствие, обетования не решены?'. – PSL