• Почем время выполения двух промисов последовательно эквивалетно времени паралельного выполнения?

    0xD34F
    @0xD34F Куратор тега JavaScript
    результат времени как при параллельном выполнении

    А почему как? Они у вас выполняются параллельно. Чтобы было последовательно - второй должен создаваться в then первого.

    UPD. Вынесено из комментариев:

    Получается что new Promise( уже запускает на выполнение код? Его можно как то отложить?

    Можно сделать getA и getB функциями, возвращающими промисы - тогда будет как вы хотите:

    const getA = () => new Promise((resolve, reject) => {
        console.time('getA');
        setTimeout(() => {
            console.timeEnd('getA');
            resolve(4)
        }, 6000)
    });
    
    const getB = () => new Promise((resolve, reject) => {
        console.time('getB');
        setTimeout(() => {
            console.timeEnd('getB');
            resolve(2)
        }, 2000)
    });
    
    
    console.time('get sum');
    getA().then(a => {
        getB().then(b => {
            console.log(`result: ${a + b}`);
            console.timeEnd('get sum');
            })
        });


    UPD. Cabac_B недоумевает в комментариях по поводу "выполняются параллельно":

    Среда исполнения JS уже умеет параллельно?

    Ну не буквально же параллельно, и не буквально выполняются - смотрите код, о котором идёт речь. Имелось в виду, что оба промиса ждут своего разрешения одновременно.
    Ответ написан
    5 комментариев