Mal*_*lte 2 javascript arrays node.js botframework
在 Node.js(正在使用 MS Bot Framework)中,我尝试迭代包含 . 返回的多个对象的数组fetch()。它执行一次迭代,然后抛出一个错误。
我确实已经将节点获取从等式中剔除,并使用了对象的静态数组。我也尝试转换为数组。结果还是一样:TypeError: (images || []).forEach is not a function第一次迭代进展顺利。
这是目前的样子(为了可读性缩短了对象值):
\n\n// exact copy of what fetch returns\nlet test = [\n {\n title: 'Power BI Desktop\xe2\x80\x94Interactive Reports | Microsoft Power BI',\n link: 'https://support.office.com/',\n description: 'Create interactive reports with data',\n thumbnail: 'https://powerbi.microsoft.com/'\n }, {\n title: 'What is Power BI administration? - Power BI',\n link: 'https://support.office.com/',\n description: 'Learn about the configuration of Power BI ',\n thumbnail: 'https://learn.microsoft.com/'\n }, {\n title: 'Add a PowerBI tab to Teams',\n link: 'https://support.office.com/',\n description: 'You can add a new or existing PowerBI',\n thumbnail: 'https://support.office.com/'\n }\n];\n\nlet cardContent = [];\ntest.forEach(element => {\n logger.debug('working on: %j', element);\n let card = CardFactory.heroCard(\n element.title,\n element.description,\n element.thumbnail,\n [element.link],\n ['Open Item']\n );\n cardContent.push(card);\n});\nRun Code Online (Sandbox Code Playgroud)\n\n仅供参考,这是我的 fetch 函数的一部分:
\n\nreturn fetch(url + question)\n .then(res => res.json())\n .then(jsonResponse => {\n return jsonResponse;\n })\nRun Code Online (Sandbox Code Playgroud)\n\n我现在真的不知道还能尝试什么。完全相同的设置适用于我的应用程序的旧版本 - 仅适用于axios但我也尝试过。
我运行你的代码并且它有效 - 这意味着test数组不包含你认为它包含的内容(可能它包含 fetch() 返回的 Promise )。使用带await关键字的 fetch 来获取响应,然后再次使用await来获取 json (类似于下面的代码 - 我将其写在 head 中)
async function load(url, question) {
...
return await (await fetch(url + question)).json()
}
...
test = await load(url, question) // this call shoud be also inside async function
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3671 次 |
| 最近记录: |