Menyederhanakan Javascript Nested Promise

Kita dapat menyederhanakan Nested promise dengan menggunakan Promise.all(), contoh

// Nested Promise
Promise1()
  .then((result1) => {
    
    Promise2.find(result1)
      .then((somethings) => {
        send.json({somethings: somethings});
      });
      
  })
  .catch(() => {
    send({error});
  })

Kita dapat memperbaikinya dengan:

Promise1()
  .then((result1) => {
    return Promise.all([result1, Promise2.find(result1);
  })
  .then((somethings) => {
      // somethings will be array, you can access with
      // somethings[0], somethings[1], ...
      send.json({somethings}); 
  })
  .catch(() => {
    send({error});
  })

Dua Promise tanpa passing parameter

Kita juga dapat menyederhanakan Promise dengan Promise.all() yang tidak perlu mem-passing parameter.

Promise.all([Kitten.count({}), Kitten.find({})])
  .then((results) => {
    res.json({total: results[0], kittens: results[1]});
  })
  .catch(({errors}) => {
    res.sendStatus(500);
  });