【发布时间】:2021-10-04 15:47:27
【问题描述】:
我正在使用 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', text: '...', title: 'Status Update - 28 Jul' }
5: WARN b [ { author: 'Aaron Wallis', color: 'blue', date: '2021-07-28T10:47:18.074Z', text: '...', title: 'Status Update - 28 Jul' }, { author: 'Aaron Wallis', color: 'green', date: '2021-07-28T10:50:15.699Z', text: '...', title: 'qweqwe' }, {}, {} ]
async: true
您可以看到日志产生了正确的输出,但是formattedResponse的返回只包含第一个数组条目?
我之前没有在 Zapier 中使用过 Code 操作,所以不确定是否需要任何特定代码才能返回完整数组?
【问题讨论】:
-
logs: 5: WARN b后面是一个由四个对象组成的数组吗? -
可能是您调用和使用返回值的方式有问题,因为很明显这段代码将返回完整的数组——或者,如果这是某个库调用的某个函数,也许你需要以不同的格式返回,即
return [formattedResponse]- 最好我能想出不知道如何使用这个函数的细节 -
是我遗漏了什么还是“b”包含数组中的所有 4 个项目...唯一的区别是索引 0 和 1 有数据,而 2 和 3 是空对象而不是 0 和 1数据,以及 2 和 3 没有在“a”输出中
-
@Bravo:是的,也许 - 代码似乎很好,所以它很可能是 Zapier 的事情。希望 Zapier 大师能站出来:D
-
那么,你不直接在任何地方调用你的函数吗?
标签: javascript zapier