Как использовать асинхронное право? - PullRequest
0 голосов
/ 16 октября 2019

В настоящее время я работаю над проектом с Angular 8 и веб-API с использованием базы данных SQL-сервера. Я несколько раз пытался обновить статус клиента (статус 0 == ожидающий клиент, статус 1 == текущий клиент, статус 2 == законченный клиент). Метод put работает нормально, но после того, как я изменил статус клиента, я хочу получить обновленный список клиентов (где status == 0). Если я использую метод http put, то метод http get не меняет мой список. Однако, если я сделаю это асинхронной функцией и добавлю небольшую задержку (задержка ожидания (50)), она будет работать нормально. Это ожидаемое поведение?

пример:

NewCustomer() {
    (async () => {

      if (this.currentCustomer == null) {
        this.http.post("https://localhost:44342/api/customer", { "Status": 1 }).toPromise();
        await delay(50);
        this.GetCurrentCustomer();
        this.GetAvailableOrderID();
        await delay(50);
        this.Reset();
      }

1 Ответ

0 голосов
/ 16 октября 2019

используйте Observable вместо обещания

NewCustomer(){
  if (this.currentCustomer == null){
    this.http.post("https://localhost:44342/api/customer", { "Status": 1 }).subscribe(result=>{
      this.GetCurrentCustomer();
      this.GetAvailableOrderID();
 })
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...