feat(timeouts): allows the wrapping of promises in timeouts
This commit is contained in:
		
							
								
								
									
										90
									
								
								readme.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										90
									
								
								readme.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,90 @@ | ||||
| # @pushrocks/smartpromise | ||||
|  | ||||
| simple promises and Deferred constructs | ||||
|  | ||||
| ## Availabililty and Links | ||||
|  | ||||
| - [npmjs.org (npm package)](https://www.npmjs.com/package/@pushrocks/smartpromise) | ||||
| - [gitlab.com (source)](https://gitlab.com/pushrocks/smartpromise) | ||||
| - [github.com (source mirror)](https://github.com/pushrocks/smartpromise) | ||||
| - [docs (typedoc)](https://pushrocks.gitlab.io/smartpromise/) | ||||
|  | ||||
| ## Status for master | ||||
|  | ||||
| [](https://gitlab.com/pushrocks/smartpromise/commits/master) | ||||
| [](https://gitlab.com/pushrocks/smartpromise/commits/master) | ||||
| [](https://www.npmjs.com/package/@pushrocks/smartpromise) | ||||
| [](https://snyk.io/test/npm/@pushrocks/smartpromise) | ||||
| [](https://nodejs.org/dist/latest-v10.x/docs/api/) | ||||
| [](https://nodejs.org/dist/latest-v10.x/docs/api/) | ||||
| [](https://prettier.io/) | ||||
|  | ||||
| ## Usage | ||||
|  | ||||
| Use TypeScript for best in class instellisense. | ||||
|  | ||||
| > Note: smartq uses native ES6 promises | ||||
| > smartq does not repeat any native functions, so for things like .all() simply use Promise.all() | ||||
|  | ||||
| ```typescript | ||||
| import * as q from '@pushrocks/smartpromise' | ||||
|  | ||||
| // Deferred | ||||
| // ----------------------------------------------- | ||||
| let myAsyncFunction = (): Promise<string> => { | ||||
|   let done = q.defer<string>() // returns your typical Deferred object | ||||
|   setTimeout(() => { | ||||
|       done.resolve('hi') // will throw type error for other types than string as argument ;) | ||||
|   },6000); | ||||
|  | ||||
|   console.log(done.status) // logs "pending"; | ||||
|   done.promise.then(() => { | ||||
|     console.log(done.status) // logs "fullfilled" | ||||
|     console.log(done.duration) // logs the milliseconds between instantiation and fullfillment | ||||
|   }) | ||||
|  | ||||
|   return done.promise | ||||
| } | ||||
|  | ||||
| let myAsyncFunction2 = async () => { | ||||
|     let aString = await myAsyncFunction() | ||||
|     console.log(aString) // will log 'hi' to console | ||||
| } | ||||
|  | ||||
| myAsyncFunction2(); | ||||
|  | ||||
|  | ||||
| // Resolved and Rejected promises | ||||
| // ------------------------------------------------ | ||||
| q.resolvedPromise(`I'll get logged to console soon`) | ||||
|     .then(x => { | ||||
|         console.log(x) | ||||
|     }) | ||||
|  | ||||
| q.rejectedPromise(`what a lovely error message`) | ||||
|     .then(() => { | ||||
|         console.log('This never makes it to console') | ||||
|     }/*, alternatively put a reject function here */) | ||||
|     .catch(err => { | ||||
|         console.log(err) | ||||
|     }) | ||||
|  | ||||
| // Promisify (typed) | ||||
| // ------------------------------------------------ | ||||
|  | ||||
| let myCallbackedFunction = (someString: string, someNumber: number, cb) => { | ||||
|     cb(null, someString) | ||||
| } | ||||
|  | ||||
| let myPromisedFunction = q.promisify(myCallbackFunction) | ||||
| myPromisedFunction('helloThere', 2).then(x => { | ||||
|     console.log(x) // will log 'helloThere' to console | ||||
| }) | ||||
| ``` | ||||
|  | ||||
| For further information read the linked docs at the top of this readme. | ||||
|  | ||||
| > MIT licensed | **©** [Lossless GmbH](https://lossless.gmbh) | ||||
| > | By using this npm module you agree to our [privacy policy](https://lossless.gmbH/privacy) | ||||
|  | ||||
| [](https://maintainedby.lossless.com) | ||||
		Reference in New Issue
	
	Block a user