我正在试图弄清楚如何为这种情况编写promise.all。让我们说我们有一个学生阵列。对于每个学生,我需要按顺序为创建和更新服务器调用(2个调用)。但我可以同时为所有学生打电话。完成所有学生创建和更新后,我需要再次进行REST调用。在这里使用promise.all正确的方法?或者应该按顺序拨打每个学生的电话?以下是我的代码,但我认为它不正确。
createAndUpdateStudents = () => {
return this.students.map((student) => {
return create(student.name) //create returns a promise
.then((response) => {
return _.get(response, "id");
})
.then((studentId) => {
update(studentId, student.grade) //update returns a promise
});
});
}
save = () => {
Promise.all(this.createAndUpdateStudents())
.then(() => {
//another rest call. This should happen only after all the students are updated
})
}
我写过简单的承诺,但我无法做到这一点。