Javascript代码返回第一个数组元素而不是整个数组

我正在使用 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 操作,所以不确定是否需要任何特定代码才能返回完整数组?

编辑:这是 Zapier Zap 的屏幕截图:

Javascript代码返回第一个数组元素而不是整个数组

quzhuanglin 回答:Javascript代码返回第一个数组元素而不是整个数组

当你说

出于某种原因,该操作只是返回第一个数组元素而不是整个数组

我怀疑只是您没有找到其他对象。可能会混淆他们如何返回您的输出,但是 their instructions say 如果您返回完整数组,就像您正在做的那样:

如果输出是一个对象数组,后续步骤将运行多次,对数组中的每个对象执行一次。

因此,如果您查看下一步的内部 - 在访问代码操作的输出时,可能有多个元素可用,但它可能不会以您期望的方式显示(请参阅说明中的屏幕截图)一个想法)。

根据您接下来的步骤,将您的输出更改为第二种建议格式(您将元素作为行项目而不是数组返回)可能会有所帮助,以查看这是否返回更符合您预期的内容。

{"line_items": formattedResponse}
本文链接:https://www.f2er.com/19497.html

大家都在问