результат времени как при параллельном выполнении
А почему как? Они у вас выполняются параллельно. Чтобы было последовательно - второй должен создаваться в 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 уже умеет параллельно?
Ну не буквально же параллельно, и не буквально выполняются - смотрите код, о котором идёт речь. Имелось в виду, что оба промиса ждут своего разрешения одновременно.