promise-helper
promise helper
Last updated 3 years ago by willkan .
Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install promise-helper 
SYNC missed versions from official npm registry.

promise-helper

frequetly used promise-helper

Installation

npm install promise-helper

Usage

Getting start

var helper = require('promise-helper')

api

setPromise(Promise<Function>)

custom your Promise

promisify(func<Function>, [opt: <Object>])

make node-callback function transfer to promise

function async (a, cb) {
  cb(err, data)
}
helper.promisify(async)(1).then(function (data) {}, function (err) {})

all(promises<Array>)

wait for an array of promise and cache the value in the same sequence

var promises = [Promise.resolve(1), Promise.resolve(2)]
helper.all(promises).then(function (data) {
  // data is [1,2]
})

props(promises<Object>)

wait for a map of promise and cache the value in the same key

var promises = {
  a: Promise.resolve(1), 
  b: Promise.resolve(2)
}
helper.props(promises).then(function (data) {
  // data is {a: 1, b: 2}
})

parallel(func<function>, concurrency<Number>)

var counter = 0
var test = function () {
  return helper.delay(function () {
    return counter++
  }, 100)
}
var promiseGens = [test, test, test]
helper.parallel(promiseGens, 2).then(function (data) {
  // data is [0,1,2], exec time is about 200ms(because the exec concurrency is 2)
})

sleep(timeout<Number>)

just like setTimeout, but in promise way

sleep(1000).then(function () {console.log(1)})

delay(func<Function>, timeout<Number>)

just like setTimeout, but in promise way

var promise = delay(function () {console.log(1)}, 1000) 
//return cancelabel promise, you can cancel by call promise.cancel()

interval(func<Function>, timeout<Number>)

just like (setTimeout -> setTimeout -> setTimeout) loop, but in promise way

var promise = interval(function () {console.log(1)}, 1000)
//return cancelabel promise, you can cancel by call promise.cancel()

retry(func<Function>, condition<Function>, timeout<Function | Number>)

retry until condtion() is true, retry time gap is timeout() or timeout

var counter = 5
retry(
  function () {throw new Error()},
  function () {return counter-- > 0}, 
  1000
).then

cancelabel(func)

create cancelabel promise

var promise = cancelabel(function (resolve, reject) {
  resolve(1)
})
promise.catch(function (err) {
  // catch the cancel error
})
promise.cancel()

Current Tags

  • 1.0.2                                ...           latest (3 years ago)

8 Versions

  • 1.0.2                                ...           3 years ago
  • 1.0.0                                ...           4 years ago
  • 0.0.6                                ...           4 years ago
  • 0.0.5                                ...           5 years ago
  • 0.0.4                                ...           5 years ago
  • 0.0.3                                ...           5 years ago
  • 0.0.2                                ...           5 years ago
  • 0.0.1                                ...           5 years ago
Maintainers (1)
Downloads
Today 0
This Week 3
This Month 4
Last Day 0
Last Week 1
Last Month 27
Dependencies (0)
None
Dev Dependencies (3)

Copyright 2014 - 2017 © taobao.org |