我正在使用 Zapiers JS 代码操作从外部 API 请求一些数据并将其格式化为 Google 表格。
出于某种原因,该操作只是返回第一个数组元素而不是包含所有对象的整个数组?
这是我的代码:
const headers = {
headers: {
'Content-Type': 'application/json','Authorization': ...
}
};
const res = await fetch(
'https://app.asana.com/api/1.0/portfolios/.../items',headers
);
const json = await res.json();
let formattedResponse = await Promise.all(json.data.map(async (entry,i) => {
let projectRequest = await fetch(
`https://app.asana.com/api/1.0/projects/${entry.gid}`,headers
);
let projectRes = await projectRequest.json();
let projObj = {};
if (projectRes.data.current_status) {
projObj.author = projectRes.data.current_status.author.name;
projObj.color = projectRes.data.current_status.color;
projObj.date = projectRes.data.current_status.created_at;
projObj.text = projectRes.data.current_status.text;
projObj.title = projectRes.data.current_status.title;
};
console.warn('a',i,projObj);
return projObj;
}));
console.warn('b',formattedResponse);
return formattedResponse;
在 Zapier 中进行测试和审核时,控制台消息
author: Aaron Wallis
color: blue
date :2021-07-28T10:47:18.074Z
text
Summary
good progress
What we've accomplished
asd
What's blocked
sdf
Next steps
dfg
title: Status Update - 28 Jul
id: ...
runtime_meta:
memory_used_mb: 76
duration_ms: 2309
logs:
1: WARN a 3 {}
2: WARN a 1 { author: 'Aaron Wallis',color: 'green',date: '2021-07-28T10:50:15.699Z',text: '...',title: 'qweqwe' }
3: WARN a 2 {}
4: WARN a 0 { author: 'Aaron Wallis',color: 'blue',date: '2021-07-28T10:47:18.074Z',title: 'Status Update - 28 Jul' }
5: WARN b [ { author: 'Aaron Wallis',title: 'Status Update - 28 Jul' },{ author: 'Aaron Wallis',title: 'qweqwe' },{},{} ]
async: true
您可以看到日志产生了正确的输出,但是 formattedResponse
的返回仅包含第一个数组条目?
我之前没有在 Zapier 中使用过 Code 操作,所以不确定是否需要任何特定代码才能返回完整数组?