`

vue promise all 多层嵌套

    博客分类:
  • Vue
 
阅读更多

目前我有一个需求是: 通过getFormNames得到了一个大集合A,在循环遍历A集合的每一条数据A1,A2。。。。以此类推,拿到A1作为参数,又会获得一个新集合,最终是把返回的结果拼装改造下返回一个新的response


export function getFormList(type, studyIds) {
  return new Promise((resolve, reject) => {
    getFormDisplayConfiguration(type, studyIds).then(response => {
      const formData = response.data.forms

      const promises = []
      includeListOptions = true
      formData.forEach(item => {
        const promise = request({
          url: `/api/formDefinition/${item.formExternalId}?includeListOptions=${includeListOptions}`,
          method: 'get'
        })
        promises.push(promise)
      })

      Promise.all(promises).then(res => {
        if (res.length === promises.length) {
          res.formConfig = formData
          resolve(res)
        } else {
          reject(res)
        }
      }).catch(err => {
        reject(err)
      })
    }).catch(err => {
      console.log(err)
      reject('assign error')
    })
  })
}

下一篇有更优化的写法,也可参考我的下一篇文章

分享到:
评论

相关推荐

    vue promise then多级嵌套

    在Vue.js开发中,Promise和then的多级嵌套是一个常见的场景,特别是在处理异步操作时。Promise是ES6引入的一种解决回调地狱问题的新机制,它使得异步代码可以更有序、可读性更强。Vue.js作为一个前端框架,深度集成...

    【JavaScript源代码】antd+vue实现动态验证循环属性表单的思路.docx

    在JavaScript和Vue.js的开发环境中,Ant Design Vue (antd-vue)是一个常用UI库,用于构建用户界面。本文将深入探讨如何使用antd-vue和Vue实现动态验证循环属性的表单,满足以下需求: 1. **名称**、**对比项**和**...

    前端开源库-deep-resolve

    然而,当Promise链深入到多层嵌套时,代码的可读性和维护性会显著降低。deep-resolve库就是为了帮助开发者解决这一问题,它提供了更高级别的抽象,使得可以方便地解析并等待对象中所有Promise的结果,无论这些...

    字节前端1

    - **多层数组嵌套降级**:递归遍历数组,每遇到数组则将其展开,直到得到一维数组。 面试中,字节跳动非常重视实际操作能力和解决问题的能力,不仅考察理论知识,更关注候选人是否能将所学应用于实践。对于面试者...

    Block UI-tree(2)编辑树列表

    4. **状态管理**:在多层嵌套的树形结构中,管理每个节点的编辑状态,确保数据的一致性和完整性。 5. **异步操作**:如果编辑操作涉及服务器通信,如保存或加载数据,那么需要处理异步编程,使用Promise或async/...

Global site tag (gtag.js) - Google Analytics