Я пытаюсь дождаться завершения отправки, но сейчас не могу.
в основном я пытаюсь удалить массив документов в firestore. Но я хочу дождаться завершения каждой асинхронной функции перед выполнением следующей функции в цикле for, но я не могу вернуть обещание из моей асинхронной функции.
Как я могу ждать завершения каждой функции, чтобы следующая функция могла быть выполнена только тогда
Я попытался вернуть асинхронный код, используя await, но не удалось
Код для выполнения программы
for(let i=0;i<this.state.createdAtList.length;i++){
await this.props.UserDataDelete(this.state.createdAtList[i], uniq[i], this.state.toDel[i], email)
}
UserDataDelete функция
export const UserDataDelete = (createdAt, DocumentsId, SessionId, email) => {
return async(dispatch, getState, {getFirestore}) => {
return await Promise.all([ firestore.collection('hello').doc(email).collection('sessions').doc(SessionId).delete().then(()=> {
dispatch({ type: 'DELETE_USER_COLLECTION_SUCCESS' });
}).catch(err => {
dispatch({ type: 'DELETE_USER_COLLECTION_ERROR' }, err);
})
,
firestore.collection('hello').doc(email).collection('documents').doc(DocumentsId).delete().then(()=> {
dispatch({ type: 'DELETE_USER_SUCCESS' });
}).catch(err => {
dispatch({ type: 'DELETE_USER_ERROR' }, err);
})
,
storage().ref(`hello/${email}/${createdAt}`).delete().then(()=> {
dispatch({ type: 'DELETE_USER_DATA_SUCCESS' });
}).catch(err => {
dispatch({ type: 'DELETE_USER_DATA_ERROR' }, err);
})])
return true
}
};
Я возвращаюсь из обещания. Все (), но оно не ждет, я использую ключевое слово await в асинхронной программе, но оно не возвращает обещание,
поэтому promise.all () не ждет, несмотря на использование команды await и ее возврат.
Как я могу сделать так, чтобы этот оператор proms.all () возвращал обещание моему коду, в котором функция закрыта. так что вызывающая функция ожидает завершения обещания.
Я хочу, чтобы этот оператор proms.all () возвращал значение обещания коду, в котором он вызывается, чтобы я мог использовать await, чтобы остановить выполнение кода до завершения текущей функции
Я хочу, чтобы функция в цикле for выполнялась одна за другой последовательным образом после завершения выполнения каждой функции.
что я не могу сейчас сделать.
Спасибо за ваше время.