2022.8.11 map()先循环请求,Promise.all()再批量处理异步请求结果

238 阅读1分钟
let mustList = JSON.parse(JSON.stringify(mustTagList));
      console.log(mustList); 
      const promiseList = mustList.map((mustItem: TagItemProps) => {
        return getTagValueByTagType({   //获取相应下拉的下拉列表
          "filters": [
            {
              "enumCodes": codes,    //父级(关联)的值
              "parentCode": tagItem.code   //父级code
            }
          ],
          "tagKeyCode": mustItem.code\
        })
      })
      Promise.all(promiseList).then(res => {
        let list = JSON.parse(JSON.stringify(mustTagList));
        list.forEach((item: TagItemProps, index: number) => {
          console.log(item);
          console.log(res);
          if(tagItem.code!==item.code && item.type) {    //不改变点击项,且为枚举型\
            item.optionList = res[index]; 
          }
          if(item.type) {   //如果是枚举型标签\
            let modalList = form.getFieldsValue()
            console.log(modalList);
            let shouldCodes: any = [];
            res[index].forEach((itm: any)=>{
              shouldCodes.push(itm.code)
            })\
            modalList[item.code]?.forEach((xm: any)=>{    
              console.log(shouldCodes);
              console.log(xm);
              
              if(!shouldCodes.includes(JSON.parse(xm).code)) {    //如果新的下拉中没有原来的值,则清空当前下拉
                console.log('有不包含的');
                modalList[item.code] = [];
              }
            })
            form.setFieldsValue(modalList)
          }
        });