Promise.all()
выполняется, когда все обещания, которые вы передаете в разрешении.Это означает, что у вас нет гарантии, что ваш studentDataPromise
будет решен до fetchLoanPromise
.Я рекомендую взглянуть сюда Promise.all
Самый простой способ - использовать .then()
после разрешения обещания.Это может выглядеть так:
let studentDataPromise = new Promise((resolve, reject) => {
/**
*
*
* **/
reject(/**Something goes here**/)
/**
* Some Code here
*
*/
resolve(/**Something goes here**/)
})
studentDataPromise
.then((/**Whatever you return from resolve()**/) => {
// Here you can call your fetchLoansPromise
fetchLoansPromise
.then(() => {
/*** ***/
})
})
Или даже более элегантно с использованием async/await
:
let studentDataPromise = () => {
return new Promise((resolve, reject) => {
/**
*
* **/
resolve()
})
}
let someAsyncFunction = async () => {
try {
let studentData = await studentDataPromise()
// Here you are guaranteed that your promise resolved
// And you can call your other function
}
catch (err) {
}
}
В любом случае вы должны убедиться, что ваше первое обещание выполнено, а затемВы можете ваши другие функции.Promise.all()
замечательно, когда вы хотите убедиться, что что-то происходит после того, как все ваши обещания (которые вы передаете) будут выполнены.Надеюсь, это поможет