Skip to content

Plugin for `dush` that makes it a Deferred promise and adds `.resolve`, `.reject`, `.than` and `.catch` methods for more better error handling experience

License

Notifications You must be signed in to change notification settings

tunnckoCore/dush-promise

Repository files navigation

dush-promisenpm versiongithub tagsmit license

Plugin fordushthat makes it a Deferred promise and adds.resolve,.reject,.thanand.catchmethods for more better error handling experience

You might also be interested indush.

Quality 👌

By usingcommitizenandconventional commit messages, maintaining meaningfulChangeLog and commit history based onglobal conventions, followingStandardJScode style throughESLintand having always up-to-date dependencies through integrations likeGreenKeeperandDavid-DMservice, this package has top quality.

code climate code style commitizen friendly greenkeeper friendly dependencies

Stability 💯

By followingSemantic Versioningthroughstandard-versionreleasing tool, this package is very stable and its tests are passing both onWindows (AppVeyor) andLinux (CircleCI)with results from 100% to400%test coverage, reported respectively byCodeCovandnyc (istanbul).

following semver semantic releases linux build windows build code coverage nyc coverage

Support 👏

If you have any problems, consider openingan issue, ping me on twitter (@tunnckoCore), join thesupport chatroom or queue alive sessionon CodeMentor with me. If you don't have any problems, you're using it somewhere or you just enjoy this product, then please considerdonating some cashat PayPal, since this isOPEN Open Sourceproject made with love atSofia, Bulgaria🇧🇬.

tunnckoCore support code mentor paypal donate NPM monthly downloads npm total downloads

Table of Contents

(TOC generated byverbusingmarkdown-toc)

Install

Install withnpm

$ npm install dush-promise --save

or install usingyarn

$ yarn add dush-promise

Usage

For more use-cases see thetests

constdushPromise=require('dush-promise')

API

Adds a Promise methods such as.resolve,.reject.thenand.catchto yourdushapplication. Useful from inside plugins. This plugin also emitserrorevent whenapp.rejectis used.

Params

  • opts{Object}:optional, passed directly tonative-promise-deferred
  • returns{Function}:a plugin function that should be passed to.usemethod ofdush

Example

vardush=require('dush')
varpromise=require('dush-promise')

varapp=dush().use(promise())

console.log(app.then)
console.log(app.catch)
console.log(app.reject)
console.log(app.resolve)

Handle resolved promise withonresolvedor rejected promise withonrejected.It is as any usual Promise.thenmethod.

Params

  • onresolved{Function}
  • onrejected{Function}
  • returns{Promise}

Example

app.then((res)=>{
console.log(res)// => 123
})
app.resolve(123)

// or handle rejected promise
app.then(null,(er)=>{
console.log('err!',er)// => Error: foo bar
})
app.reject(newError('foo bar'))

Catch a rejected promise error. This method is mirror of any usual promise.catchmethod.

Params

  • onrejected{Function}
  • returns{Promise}

Example

app.on('error',(err)=>{
console.log('er!',err)// => Error: sad err
})
app.catch((err)=>{
console.log('oops, error!',err)// => Error: sad err
})

app.reject(newError('sad err'))

As any usualPromise.resolvemethod.

Params

  • val{any}
  • returns{Promise}

Example

app.use((app)=>{
app.foo=()=>{
returnapp.resolve(1222)
}
})

constpromise=app.foo()
promise.then((val)=>{
console.log('res:',val)// => 1222
})

As any usualPromise.rejectmethod.

Params

  • err{Error}
  • returns{Promise}

Example

app.on('error',(err)=>{
console.log('some error:',err)// => Error: quxie
})
app.reject(newError('quxie'))

Related

Contributing

Pull requests and stars are always welcome. For bugs and feature requests,please create an issue.
Please read thecontributing guidelinesfor advice on opening issues, pull requests, and coding standards.
If you need some help and can spent some cash, feel free tocontact me at CodeMentor.iotoo.

In short:If you want to contribute to that project, please follow these things

  1. Please DO NOT editREADME.md,CHANGELOG.mdand.verb.mdfiles. See"Building docs"section.
  2. Ensure anything is okey by installing the dependencies and run the tests. See"Running tests"section.
  3. Always usenpm run committo commit changes instead ofgit commit,because it is interactive and user-friendly. It usescommitizenbehind the scenes, which follows Conventional Changelog idealogy.
  4. Do NOT bump the version in package.json. For that we usenpm run release,which isstandard-versionand follows Conventional Changelog idealogy.

Thanks a lot!:)

Building docs

Documentation and that readme is generated usingverb-generate-readme,which is averbgenerator, so you need to install both of them and then runverbcommand like that

$ npm install verbose/verb#dev verb-generate-readme --global && verb

Please don't edit the README directly. Any changes to the readme must be made in.verb.md.

Running tests

Clone repository and run the following in that cloned directory

$ npm install && npm test

Author

Charlike Mike Reagent

License

Copyright © 2017,Charlike Mike Reagent.Released under theMIT License.


This file was generated byverb-generate-readme,v0.4.3, on April 02, 2017.
Project scaffolded usingcharlikecli.

About

Plugin for `dush` that makes it a Deferred promise and adds `.resolve`, `.reject`, `.than` and `.catch` methods for more better error handling experience

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published