讨论两种情况:

一次发送多个请求,等多个请求都返回后再处理下一步,各个请求间是独立的

Promise.all(iterable) 返回一个[],一旦有任何一个iterable里面的promise对象失败则立即触发该promise对象的失败

Rxjs 的 forkjoin

observers = fieldsObserver.((field) => {    Observable(observer => {        ..(fieldobserver)})})(...observers).(data => {    obj: = {}data.((itemindex) => {        obj[fieldsObserver[index].] = item})callback(obj)})


async await (ES6的新标准,把异步的转化成同步的)

let test = async () => {
   try{
   masterDetailFormInfo = await new Promise((resolve, reject) => {
       this.formService.publicGetFormInfo(field.settings.formId).subscribe(obj => {
           if(obj.success){
               resolve(obj.form);
           }else{
               reject();
           }
       });
   });
   results = await new Promise((resolve, reject) => {
       let params: any = {
           formId: masterDetailFormInfo.id,
           tags: [this.formInfo.data.id+'-'+ field.uid]
       };
       params.start = 0;
       params.limit = 10000;

       this.formDataService.formDataSearch(params).subscribe(obj => {
           if(obj.success){
               let data = this.formHelper.generateRecs(obj.results, masterDetailFormInfo);
               resolve(data);
           }else{
               reject();
           }
       });
   });
   }catch(e){
   return ;
   }
}
test().then((data) => {})


一次发送多个请求,但是下一个请求都需要用上一个请求的返回值,最后只输出最后一个请求的值

Rxjs mergMap

..<>(..[]).(    ((obj: ) => {        (!obj.){            Observable(observer => observer.({:}))}        req = HttpRequest(obj.formData{            :HttpHeaders({: obj.opToken})        })..(req).(((event: HttpEvent<{}>) => {            if(!event.body['success']){                    return new Observable(observer => observer.next({'success':false}));                }                const params = new FormData();                params.append('fileKey', event.body['fileKey']);                params.append('formId', this.formInfo.id);                params.append('fieldId', this.fileField['uid']);                //send fileKey to backend                return this.http.post(this.globalConst.urls['formUploadFile'], params);            } {                Observable()}        }))    })).((obj: ) => {    (obj[]){}{}})

async await (ES6的新标准,把异步的转化成同步的)

©著作权归作者所有:来自51CTO博客作者csboyty的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. Python开发技巧:scrapy-redis爬虫如何发送POST请求
  2. 一、简单学习Ajax的GET & POST请求
  3. scrapy-redis爬虫如何发送POST请求
  4. php如何用get方式写一个简单的API接口并返回Json
  5. Nginx架构详解(二):nginx反向代理配置
  6. Spring Cloud 2.x之SpringBoot配置Cors解决跨域请求
  7. Influxdb中Select查询请求结果涉及到的一些数据结构
  8. 大规模分布式系统资源管理(一)
  9. 这些PHP考点虽然简单基础,但是很重点

随机推荐

  1. android图片压缩的3种方法实例
  2. android api (83) —— InputMethodSessi
  3. Android学习笔记——各种常用布局管理器
  4. Android(安卓)蓝牙开发(四)OPP传输文件
  5. 基于MQTT实现Android消息推送(Push)(2)
  6. android 有关怎么自己添加系统级服务 jav
  7. Android 网络(四) Retrofit学习笔记
  8. Android UI Operation in Thread
  9. Android快速开发框架介绍
  10. 百度Android开发面试题