假设一个班有 3 个同学,每个同学都有三科成绩,分别是语数英,我们可以写成这样的数据结构。

    1. [
    2. {
    3. name: "小枪",
    4. subjects: ["math", "chinese", "english"]
    5. },
    6. {
    7. name: "小刀",
    8. subjects: ["math", "chinese", "english"]
    9. },
    10. {
    11. name: "小花",
    12. subjects: ["math", "chinese", "english"]
    13. }
    14. ]

    我们现在需要用请求获取每个同学每科的成绩。这个时候应该怎么做呢?
    代码如下:

    1. async getResult(arr) {
    2. const res = await Promise.all(
    3. arr.map(student => {
    4. const subjectsRequest = [];
    5. student.subjects.forEach(subject => {
    6. subjectsRequest.push(get(subject)/* 异步请求 */);
    7. });
    8. return Promise.all(subjectsRequest);
    9. });
    10. )
    11. return res;
    12. }

    获取到的结果格式是:

    1. [[91, 92, 93], [94, 95, 96], [97, 98, 99]]

    一一对应小枪、小刀、小花的各科成绩。