axios.all方法then返回匿名函数

loadCityMap: function () {
  const __this = this
  let __paths = []
  xyCityMap.forEach(cn => {
    // cn 为地图名称,根据名称去加载地图json数据
    __paths.push(() => __this.$axios.get(`jsonmap/${cn}.json`))
  })
  console.log(__paths)
  __this.$axios.all(__paths).then(__this.$axios.spread((act, params) => {
    console.log('所有请求都完成了?', act, params)
  }))
}

这个为什么返回是这样?
图片描述

根据官网的例子返回不应该是所有的结果什么的吗?

function getUserAccount() {
  return axios.get('/user/12345');
}
 
function getUserPermissions() {
  return axios.get('/user/12345/permissions');
}
 
axios.all([getUserAccount(), getUserPermissions()])
  .then(axios.spread(function (acct, perms) {
function getUserAccount() {
  return axios.get('/user/12345');
}
 
function getUserPermissions() {
  return axios.get('/user/12345/permissions');
}
 
axios.all([getUserAccount(), getUserPermissions()])
  .then(axios.spread(function (acct, perms) {
    // Both requests are now complete
  }));
阅读 2.7k
2 个回答

搞定了,被例子误导了。

__paths.push(__this.$axios.get(`jsonmap/${cn}.json`))

就好,不用函数的方式

新手上路,请多包涵

你这个问题我今天也遇到了,我想的是,直接打印了函数,说明函数没调用,所以没有return,那我就在push后面,让箭头函数自调用了一下,然后就行了,你可以试试

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题