nv-facutil-new-promise

nv-facutil-new-promise =============== - nv-facutil-new-promise is a simple-util for promise - extends serveral methods for Promise - state,final,store rslt/exception - manual-interupt when pending

Usage no npm install needed!

<script type="module">
  import nvFacutilNewPromise from 'https://cdn.skypack.dev/nv-facutil-new-promise';
</script>

README

nv-facutil-new-promise

  • nv-facutil-new-promise is a simple-util for promise
  • extends serveral methods for Promise
  • state,final,store rslt/exception
  • manual-interupt when pending

install

  • npm install nv-facutil-new-promise

usage

example

const fac_nprom = require("nv-facutil-new-promise");
const {NPromise} = require("nv-facutil-new-promise")

resolve

var p = new NPromise(
    (rs,rj) => {
        setTimeout(
            ()=>{rs("succ")},
            15000
        )
    }
)
> p.state
'pending'
> p
Promise { <pending> }
> p.rslt
<pending>

> p
Promise { 'succ' }

> p.rslt
'succ'

> p.final
'succ'

> p.exception
Uncaught Error: use-rslt-or-final

> p.then(r=>{console.log(r)})
> succ

> p.finally(()=>{console.log("finished")})
> finished

> p.state
'resolved'
>

> Array.from(p)
[
  [ 'rslt', 'succ' ],
  [ 'exception', undefined ],
  [ 'state', 'resolved' ]
]
>

reject

var p = new NPromise(
    (rs,rj) => {
        setTimeout(
            ()=>{rj("fail")},
            15000
        )
    }
)
> p.state
'pending'
> p.exception
'fail'
>
> p.state
'rejected'
> p
Promise { <rejected> 'fail' }
>
> p.final
'fail'
>
> p.rslt
Uncaught Error: use-rejected-or-final


> p.catch(err=>{console.log(err)})
> fail
> p.finally(()=>{console.log("finished")})
> finished

manual interupt

var p = new NPromise(
    (rs,rj) => {
        setTimeout(
            ()=>{rj("fail")},
            15000
        )
    }
);
> p.manual_resolve("manual")
undefined
> p
Promise { 'manual' }
>

METHODS

p.rslt                  p.exception             p.final

p.state
p.is_pending            p.is_rejected           p.is_resolved
p.is_settled            

p.manual_reject         p.manual_resolve        p.rslt

p.then                  p.catch                 p.finally

APIS

fac_np.NPromise(f) fac_np.ERROR_DICT fac_np.PENDING

LICENSE

  • ISC