js for循环结束后的回调函数

let defaultData = []
      for (var i = 0; i < data.length; i++) {
        queryPerm({ appId: data[i].id, roleId: row.id }).then(res => {
          console.log('res.data', res.data)
          for (var i = 0; i < res.data.length; i++) {
            if (res.data[i]) {
              defaultData.push(res.data[i])
            }
          }
        })

      }
      console.log('defaultData', defaultData)

如题,我想知道这个for循环结束后,用什么方法可以得到他的回调函数,在最后一次循环结束后

在这里先感谢各位大婶们的解答了,小弟感激不尽!

阅读 4.3k
3 个回答

let defaultData = []
Promise.all(data.map(dataItem => queryPerm({ appId: data[i].id, roleId: row.id })))
.then(resList => {
    resList.forEach(res => {
         console.log('res.data', res.data);
         for (var i = 0; i < res.data.length; i++) {
            if (res.data[i]) {
              defaultData.push(res.data[i])
            }
         }
    })
})

异步了解下

return new Promise()
   let res=await queryPerm({ appId: data[i].id, roleId: row.id })
   ...
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题