Promise.all là gì?

promise,es6

Promise.all là gì? Hiểu và sử dụng promise all trong những trường hợp nào trong vòng 1 phút.

// setup
const wait = value => new Promise(resolve => {
  setTimeout(() => resolve(value), 3000);
});
  
const fetchFoo = () => wait('foo');
const fetchBar = () => wait('bar');
const fetchBaz = () => wait('baz');
const fetchDataSlowly = async time => {
  // Bad. Requests run in serial waterfall.
  const foo = await fetchFoo();
  const bar = await fetchBar();
  const baz = await fetchBaz();
  return { foo, bar, baz, time: Date.now() - time };
};
fetchDataSlowly(Date.now())
  .then(({ foo, bar, baz, time }) => {
    console.log('fetched slowly:', foo, bar, baz, time
    );
  });
  
const fetchDataQuickly = async time => {
  // Good. Fetches run in parallel.
  const [
    foo,
    bar,
    baz
  ] = await Promise.all([
    fetchFoo(),
    fetchBar(),
    fetchBaz()
  ]);
  return { foo, bar, baz, time: Date.now() - time };
};
fetchDataQuickly(Date.now())
  .then(({ foo, bar, baz, time}) => {
    console.log('fetched quickly:', foo, bar, baz, time);
  });


const fetchDataQuickly2 = async time => {
  // Also good.
  const fooReady = fetchFoo();
  const barReady = fetchBar();
  const bazReady = fetchBaz();
  const foo = await fooReady;
  const bar = await barReady;
  const baz = await bazReady;
  return { foo, bar, baz, time: Date.now() - time };
};
fetchDataQuickly2(Date.now())
  .then(({ foo, bar, baz, time}) => {
    console.log('fetched quickly:', foo, bar, baz, time);
  });

Có thể bạn đã miss một số snippets code

Lodash sort - Test performance with native js

Lodash sort - Bài viết ngắn gọn muốn đưa ra con số sau khi test về Lodash và Native js. Đây chỉ là check trên phương diện cá nhân...

promise in javascript

promise in javascript

Rest Operator for Objects

Now we can use rest on the properties of an Object. It allows us to explicitly extract certain named variables, and assign any uncalled variables into a catchall Object.

How to use the spread operator to flatten array of objects in javascript

How to use the spread operator to flatten array of objects in javascript

using async/await to catch errors