我知道这不会像我写的那样工作,而且我没有看到任何可以为我解决问题的答案。代码太长,无法放在这里,但我已经包含了一个要点的链接
https://gist.github.com/dhawkinson/41211d067ea91e0b7a5823067d2e39fe
我的问题是这样的:
我得到 json 文件的 id 列表,必须读取这些文件并将其转换为多个 SQL 表中的行。该列表来自另一个 json 文件,以 id 数组的形式指向我需要读取和转换的文件。
根据要求,SQL 表中不能有冗余数据的行。 SQL 的 id 是自动生成的。 API 中有 3 类实体:
学习者和类(class)都可能在结果中出现多次,但在特定日期只出现一次。但是,学习者和类(class)在学习者和类(class)表中只能分别出现一次(无冗余)。
我的源数据是 4 个 json 结果,与我列表中的 4 个 ID 匹配。高级 View 如下(格式:Course_TimeStamp.json)
当我解析和写入数据时,我得到:
鉴于我的限制,我该如何解决这个问题?我怀疑冗余问题可能会在某些模糊的情况下出现在 Learners 表中,尽管目前还没有。我对所有表都使用相同的方法。
帮助表示赞赏。对不起,冗长。
最佳答案
您不能将 async/await 与 forEach 一起使用
REASON : Because we can not use await inside synchronous function. As you can see “processArray” is async function. But anonymous function that we use for forEach is synchronous. DO READ
questions.forEach((question) => {
processCourseDetails(jsonData, question);
});
您可以使用简单的 for 循环 ,像这样
for(question of questions) {
await processCourseDetails(jsonData, question);
}
You can create a custom function to work like forEach with async/await , DO READ
关于json - 当我需要将 async/await 嵌入到 javascript 中的 forEach() 中时如何使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53643034/