为了账号安全,请及时绑定邮箱和手机立即绑定

循环遍历一个对象并添加到另一个对象

循环遍历一个对象并添加到另一个对象

三国纷争 2023-03-24 14:02:28
所以我试图从 API 获取一些数据,对其进行一些翻译并返回值。这是从 hubspot 的 hubdb API 中提取数据,但是当数据返回时,您不会取回字段名称,因此我需要通过函数运行它以获取字段名称。我能够使用以下方法在单行上成功执行此操作。return axios.get('urltoapi').then((res) => { const row = res.data; return convertHubdbKeyValues(table_name, row.values).then((details) => {  return {   details,  }; });});然后我尝试遍历多行来构建一个数据数组,但我得到的只是一个空数组,我确定我在这里做一些非常基本的错误return axios .get(getRowByQueryUrl(table_details.table_id, query)) .then((res) => {  var bookings = [];  this.data = res.data;  this.data.objects.forEach((item) => {   return convertHubdbKeyValues(table_name, item.values).then(    (updatedValues) => {     bookings.push(updatedValues);    }   );  });  return bookings; });
查看完整描述

1 回答

?
绝地无双

TA贡献1946条经验 获得超4个赞

在您当前的实现中,数组在内部的异步调用完成bookings之前返回。forEach解决这个问题的一种方法是使用Promise.all:


return axios

 .get(getRowByQueryUrl(table_details.table_id, query))

 .then((res) => {

  const promises = res.data.objects.map(item => convertHubdbKeyValues(table_name, item.values))

  return Promise.all(promises)

 });

顶级函数将返回一个解析为数组的承诺updatedValues,正如您在上面所说的那样。


查看完整回答
反对 回复 2023-03-24
  • 1 回答
  • 0 关注
  • 155 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信