最近项目中遇到一个问题,需要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对象
热门评论
- 
			
				果然菜菜2019-11-04 0 
 
 
查看全部评论后台又想到一个方法,可以声明一个number类型的变量,每一个请求完成后都要+1,每次在方法体中执行要完成的逻辑,判断变量是否等于请求的个数,等于则执行