Skip to content

kepennar/Async-defer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Async defer

This package provide 2 async utilities

Defer

A resolvable/rejectable promise from outside is constructor.

/!\ The defer concept is not included in Promise specification for good reasons. Do not use this abusively!

Usage

const defer = new Defer<string>();
const value = await defer.promise;

defer.resolve('blah');

console.log(value); // > "blah"
const defer = new Defer<string>();
try {
  const value = await defer.promise;
  defer.reject('blah');
} catch (error) {
  console.log(error); // > "blah"
}

Async lock

Usage

const asyncLock = new AsyncLock();
asyncLock.lock('example');

setTimeout(() => {
  asyncLock.unlock('example');
}, 1000);

await asyncLock.pending;
console.log('This log will be printed after 1s');

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published