20 сек, а в add2 40?
                  
                  
                  function resolveAfter2Seconds(x) {
                  
                  
                    return new Promise(resolve => {
                  
                  
                      setTimeout(() => {
                  
                  
                        resolve(x);
                  
                  
                      }, 2000);
                  
                  
                    });
                  
                  
                  }
                  
                  
                  
                  
                  
                  async function add1(x) {
                  
                  
                    var a = resolveAfter2Seconds(20);
                  
                  
                    var b = resolveAfter2Seconds(30);
                  
                  
                    return x + await a + await b;
                  
                  
                  }
                  
                  
                  
                  
                  
                  add1(10).then(v => {
                  
                  
                    console.log(v);  // prints 60 after 2 seconds.
                  
                  
                  });
                  
                  
                  
                  
                  
                  async function add2(x) {
                  
                  
                    var a = await resolveAfter2Seconds(20);
                  
                  
                    var b = await resolveAfter2Seconds(30);
                  
                  
                    return x + a + b;
                  
                  
                  }
                  
                  
                  
                  
                  
                  add2(10).then(v => {
                  
                  
                    console.log(v);  // prints 60 after 4 seconds.
                  
                  
                  });
                  
                  
                
add1 запустил параллельно add2 запустил последовательно
дело в том, что в add1() в a и b хранятся не значения, а промисы а в add2() уже значения, так как мы промисов ждем по месту
Обсуждают сегодня