手记

angular6同步请求解决方案

  最近项目中遇到一个问题,需要angular6发送多个同步请求,所有的请求结果返回处理后再执行后面的逻辑,经过百度查找资料,解决方案如下:

ngOnInit() {
    this.getMockDataFuc();
}

async getMockDataFuc() {
  const result = await this.getPromiseData();
  console.log('打印result数据  ' + result['state']);
  if (result['state']) {
    for (let i = 0; i < 2; i++) {
      const result1 = await this.getPromiseData();
      console.log(result1);
    }
  }
  console.log('最后打印的');
}

getPromiseData () {
  const result = this.getInfoService.getMockData().toPromise();
  return result;
}

说明:  1、调用的最外层函数中使用 async 修饰, 在方法体重,使用 await 修饰要发送的同步请求。

           2、getPromiseData 方法是为了返回同步请求的res。toPromise,将res转成Promise对象

1人推荐
随时随地看视频
慕课网APP

热门评论

后台又想到一个方法,可以声明一个number类型的变量,每一个请求完成后都要+1,每次在方法体中执行要完成的逻辑,判断变量是否等于请求的个数,等于则执行

查看全部评论