Я пытаюсь использовать Promise с последующим использованием then (), чтобы заставить некоторый код работать асинхронно. Моя цель - при запуске функции addTimeToTimecard () обещание запустит другую функцию с запросом http внутри, а затем вернется к then () и запустит вторую службу http.
addTimeToTimecard() {
const promise = new Promise((resolve, reject) => {
this.checkAndCreateTimecard();
resolve();
});
// everything in the function above needs to complete before the upcoming http request
promise.then(() => {
console.log("do the patch")
this.httpService.patch('setTimeIn/', { timeVar: "TimeIn", timeAmount: this.time1 }).subscribe()
})
checkAndCreateTimecard() {
this.httpService.get('timecard/fullTimecard/' + this.workDate).subscribe((ft: any) => {
console.log("got the timecard")
)}
}
//output:
do the patch
ERROR timecard doesn't exist
got the timecard
Мне приходилось прибегать к использованию SetTimeout (), чтобы заставить код работать таким образом, но я знаю, что использование Promises или async / await - лучший способ сделать что-то. Что я здесь не так делаю и как лучше всего использовать обещания?