У меня есть код для:
- Чтение последних трех данных из Firebase
- Итерация каждых полученных данных
- Передача выражения функции, возвращающей обещание, в массивОбещание будет обработано последовательно позже
- Обработать указанный массив последовательно
Код:
firebase.database().ref('someRef').limitToLast(3).on('value', snapshot => {
let promiseArray = [];
snapshot.forEach(e => {
promiseArray.push(() => {
firebase.storage().ref(e.key).getDownloadURL().then(url => {
//Do something with URL
//In this case, I print out the url to see the order of URL retrieved
//Unfortunately, the order was incorrect
return 'Resolved, please continue'; //Return something to resolve my Promise
});
});
});
let result = Promise.resolve([]);
promiseArray.forEach(promise => {
result = result.then(promise);
});
});
Я думаю, что это уже должно быть правильно.Однако результат, который я хочу получить, неверен.Что я пропустил?
РЕДАКТИРОВАТЬ
Кажется, я упустил пункт. В моем массиве Promise я хочу, чтобы первая функция разрешала Promise, который он возвращает первым, прежде чем перейти ко второй функции.