如何为这种情况编写Promise.all

时间:2017-06-04 02:58:07

标签: javascript es6-promise

我正在试图弄清楚如何为这种情况编写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
       })
    }

我写过简单的承诺,但我无法做到这一点。

0 个答案:

没有答案