Я учусь использовать обещания для выполнения асинхронных задач.
Я борюсь с проблемой, которую не могу понять, и после поиска и прочтения других сообщений здесь я незнать, как это исправить.
function processStuff(things) {
var result = {};
var pictures = checkPictures(data);
if (pictures.length > 0) {
return new Promise(function(resolve) {
var promisesArray = [];
pictures.forEach(function(picture) {
promisesArray.push(getBase64(picture));
});
Promise.all(promisesArray).then(function(processedPictures) {
result = getOtherSutff(things);
var insertedElements = Object.keys(result).length;
for (var index = 0; index < processedPictures.length; index++) {
var item = processedPictures[index];
result['thingId-' + (++insertedElements).toString()] = item;
}
});
resolve(result); (1)
});
} else {
return new Promise(function(resolve) {
result = getOtherSutff(things);
resolve(result);
});
}
}
Когда я отлаживаю код, я вижу, что в (1) переменная заполнена данными, но когда я вызываю функцию и пытаюсь использовать данные:
...........
processStuff(things).then(function(result) {
console.log(result)
});
..........
Я вижу на терминале: {}
.
Где моя ошибка или что я делаю не так?
С уважением.