JavaScript patterns - LiveStone/knowledge-base GitHub Wiki

Ice Factory

Pros:

  • No need for 'this' & 'new'
  • Immutable result object (yet shallow)

Cons:

  • A little bit complicated syntax.
function makeSomething({ member }) {
  let secret = 'Clousure secret';
  const { other } = makeSomethingElse();
  
  function method () {
    // код, который использует "member" и "secret"
  }

  return Object.freeze({ 
    other,
    method
  });
}

//здесь свойство secret недоступно
const thing = makeSomething();
thing.secret; // undefined
Call sequence for async jobs
const waitFor = (ms) => new Promise(r => setTimeout(r, ms));

[1, 2, 3].map((num) => async () => {
    await waitFor(2000);
    console.log(num);
}).reduce((result, job) => result.then(() => job()), Promise.resolve());

console.log('Done');
⚠️ **GitHub.com Fallback** ⚠️