Я отправляю запрос на сервер node.js из приложения Angular и мне нужно дождаться ответа от сервера, прежде чем продолжить. Кажется, что-то не так с моим вызовом asyn c, но я не могу понять, что это такое.
Это мой компонент входа:
onLogin() {
if (this.form.invalid) {
console.log(this.form);
console.log('Form invalid');
return;
}
this.isLoading = true;
const findUserType = () => {
return new Promise(resolve => {
resolve(this.authService.getUserType(this.form.value.username));
});
};
async function asyncCall() {
console.log('getting user type');
const result = await findUserType().then(userType => {
console.log(userType);
});
}
Выполнение запроса через authservice:
getUserType(username: string) {
this.http.post<{ message: string; }>(
'http://localhost:3000/api/user/find-user',
{ username }
)
.subscribe(response => {
console.log(response.message);
return response.message;
});
}
, который получает данные из nodejs:
router.post('/find-user', (req, res, next) => {
function checkHauler() {HaulerUser.countDocuments({ username: req.body.username }, function (err, count) {
if (count > 0) {
return res.status(200).json({
message: 'isHauler'
})
}
});
}
function checkAbf() {AbfUser.countDocuments({ username: req.body.username }, function (err, count) {
if (count > 0) {
return res.status(200).json({
message: 'isAbf'
})
}
});
}
function checkUtility() {UtilityUser.countDocuments({ username: req.body.username }, function (err, count) {
if (count > 0) {
return res.status(200).json({
message: 'isUtility'
})
}
});
}
Promise.all([checkHauler(), checkAbf(), checkUtility()])
.then(() => {
console.log('done')
})
Это то, что отображается в моей консоли:
getting user type
undefined
result: undefined
Uncaught TypeError: Cannot read property 'type' of undefined
at setFieldValue (onloadwff.js:71)
at HTMLFormElement.formKeydownListener (onloadwff.js:71)
isAbf
I ' Я очень новичок во всем этом, и любая помощь будет оценена !!