Ваша getUserByImportMail
функция является асинхронной, это означает, что она вернет Promise
для всего, что в конечном итоге вернется как mailResult
.Вы должны сделать isSenderValid
также функцией async
, а затем она может await
результат вызова:
const isSenderValid = async mail => {
const importMail = await getUserByImportMail({importMail: mail})
console.log("In file 2: " + inspect(importMail))
// some checks
return importMail
}
Тогда, конечно, для любых вызовов isSenderValid
также необходимо использовать await
ибыть самой async
функцией.Весь путь вниз.
В качестве альтернативы isSenderValid
может использовать Promise
напрямую, но в этом случае он не может вернуть importMail
.Если вы вызываете функцию, которая async
, то есть возвращает Promise
, вы не можете вернуть ничего, что напрямую зависит от результата этого Обещания: все остальное также должно быть async
.
Вот как выможет обработать Promise
внутри isSenderValid
и вернуть другое Promise
, которое разрешится в importMail
:
const isSenderValid = mail => {
return getUserByImportMail({importMail: mail})
.then(importMail => {
console.log("In file 2: " + inspect(importMail))
// some checks
return importMail
});
}