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