我正在使用 Node.js 和 Facebook API,我在此功能中遇到问题,我不知道如何解决它



[创建电子商务聊天机器人时,我想搜索与用户购物车(其购物车中的产品(相关的信息,并将这些信息作为列表发送给信使。

我在下面的链接中写了一个函数,当测试时,我在messenger中没有返回任何元素就出现了这个错误。

调用发送API 400错误请求失败{消息:'(#194(param name_placeholder[elements]的元素太少。',类型:"OAuthException",代码:194,fbtrace_id:'AWTjz9pQlZ_kfwU-GHjq-mB'}

我认为问题在于,对发送消息的函数的调用是在搜索有关每个项的信息并附加MyArray之前执行的。

我如何解决这个问题以及功能有什么问题]1

简而言之,如果将forEach循环替换为for。。。在中,您将获得所需的结果。

for await (const item of items) {
// do your async stuff
}

forEach将遍历所有项,并为每个元素执行所提供的回调,但它不会等待promise或遵守async/await。它希望回调是同步的:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach

因此,当您使用MyArray时,它将是空的——从forEach回调返回的promise将不会被解析。

*此外,最好始终在您的问题中包含上面评论中提到的代码。

相关内容

最新更新