循环遍历一个对象并添加到另一个对象
Issue looping through an object and adding to another
所以我试图从 API 中获取一些数据并对其进行一些翻译并 return 值。
这是从 hubspot 的 hubdb API 中提取数据,但是当数据 returns 你没有得到字段名称时,所以我需要 运行 通过一个函数来获取字段名称。
我能够使用以下方法在单行上成功执行此操作。
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;
});
在您当前的实现中,bookings
数组在 forEach
内的异步调用完成之前被 returned。解决这个问题的一种方法是使用 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)
});
top-level 函数将 return 解析为 updatedValues
数组的承诺,正如您在上面所说的那样。
所以我试图从 API 中获取一些数据并对其进行一些翻译并 return 值。 这是从 hubspot 的 hubdb API 中提取数据,但是当数据 returns 你没有得到字段名称时,所以我需要 运行 通过一个函数来获取字段名称。 我能够使用以下方法在单行上成功执行此操作。
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;
});
在您当前的实现中,bookings
数组在 forEach
内的异步调用完成之前被 returned。解决这个问题的一种方法是使用 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)
});
top-level 函数将 return 解析为 updatedValues
数组的承诺,正如您在上面所说的那样。