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');