【问题标题】:Angular 5 Await Not WaitingAngular 5等待不等待
【发布时间】:2019-01-22 10:58:32
【问题描述】:

当我运行下面的代码时,checkCard 函数在 getTimecard 函数完成之前运行。

getTimecard() {
  this._service.getTimecard().subscribe(
  data => {
    this.sending = true;
    this.timecards = data;
  },
  err => {
    this.sending = false;
    console.error(err);
  },
  () => {
    this.sending = false;
  }
);
}

checkCards() {
  console.log('timecards', this.timecards);
  //code dependent on timecard data
}

async onSubmit() {
  await this.getTimecard();
  this.checkCards(); 
}

为什么 checkOverlap 不等待 getTimecard 返回它的数据?

【问题讨论】:

  • getTimecard 不返回任何等待。

标签: javascript typescript async-await angular5


【解决方案1】:

要使函数可等待,该函数需要返回一个 Promise。

loadTimecards() {
   return new Promise(resolve => {
     this.sending = true;
     this._service.getTimecard().subscribe(data => {
       this.sending = false;
       this.timecards = data;
       resolve();
     });
  });
}

【讨论】:

    猜你喜欢
    • 2018-12-09
    • 1970-01-01
    • 2017-05-30
    • 2018-05-04
    • 2020-05-09
    • 2021-09-15
    • 1970-01-01
    • 1970-01-01
    • 2019-02-18
    相关资源
    最近更新 更多