Я пытаюсь создать HTTP-запрос на размещение запросов через экспресс, который вызывает функцию при конкуренции. Я успешно получил вызовы API для обновления базы данных, но функции внутри .then () и .catch () не вызываются. ToPromise () не работает для запросов на ввод?
На внешнем интерфейсе я попытался добавить типы в функцию и определить ее как асинхронную. На сервере я попытался реструктурировать операторы .then () и catch (). Кажется, ничего не работает.
app.component.ts
public async save(): Promise<any> {
return this.httpClient.put<any>('/api/update-account', {
name: this.name,
email: this.email
}).toPromise()
.then(() => {
// Run if successful put request
success()
})
.catch(() => {
// Run if error
fallback()
})
}
server.js
app.put('/api/update-account', (req, res) => {
let name = req.body.name;
let email = req.body.email;
sql.connect(dbConfig).then(() => {
return sql.query`UPDATE users SET Name=${name} WHERE Email=${email}`
.then(result => {
console.log(result);
sql.close();
}).catch(err => {
console.log(err);
sql.close();
})
}).catch(err => {
console.log(err);
sql.close();
})
});
Я ожидаю, что success () или fallback () будут выполняться после запроса API, но ни один из них не вызывается.