【发布时间】:2021-04-12 17:37:51
【问题描述】:
我正在做一个应用程序,但我遇到了一个问题:我正在尝试向数组添加值但我做不到,返回我的名为 create_division_and_grades 的函数的值是一个空数组 []
async function create_division_and_grades(grades /*Array */, divisions /*Object */, school /*Object*/) {
var new_grades = []
await grades.forEach(async grade => {
const new_grade = new Grade({
number: grade,
school,
})
await divisions[`${grade}`].forEach(async division => {
const new_division = new Division({
character: division,
school,
grade: new_grade,
})
const saved_division = await new_division.save()
new_grade.divisions.push(saved_division)
})
const saved_grade = await new_grade.save()
new_grades.push(saved_grade)
})
return new_grades
这就是我使用函数的方式:
const grades_primary = await create_division_and_grades(info.grades_primary, info.divisions_primary, new_school)
info.grades_primary 是:
[1, 2, 3, 4, 5, 6]
info.divisions_primary 是:
{ "1" : ["A", "B"], "2":["A", "B"], "3":["A", "B"], "4":["A", "B"], "5":["A", "B"], "6":["A", "B"] }
【问题讨论】:
-
.forEach()的回调应该是同步的,所以你不能让它async并期望它正常运行,而是使用普通的 for 循环 -
你可能想
awaitPromise.all(promises)。
标签: javascript arrays function object