编辑代码

function sleep(ms: number): Promise<undefined> {
    // 补全此处代码
    return new Promise(resolve => setTimeout(() => resolve(undefined), ms))
}

/**
 * @file 实现 PromiseAll 方法
 */


async function myAll<T extends unknown[] | []>(values: T): Promise<any> {
    // 补全此处代码,使用 Promise.all 以外的语法完成
    var arr = [];
    for (var i = 0; i < values.length; i++) {
        arr.push(await values[i]);
    }
    return arr;
}

// 一秒钟后返回结果 value
async function request(value: string) {
    await sleep(1000);
    return value;
}
async function main() {
    console.log('start');
    const res = await myAll([
        request('a'),
        request('b'),
        request('c'),
    ])
    console.log(res); // 预期输出 start 一秒后输出 ['a', 'b', 'c']
}
main()