{"_id":"wait-promise","_rev":"8-84b32bf66ff01e50f973062bcbc8fc49","name":"wait-promise","description":"Make a promise, waiting for a specified amount of time, util something is done.","dist-tags":{"latest":"0.4.1"},"versions":{"0.1.0":{"name":"wait-promise","version":"0.1.0","description":"Make a promise, waiting for a specified amount of time, util something is done.","main":"src/wait-promise.js","scripts":{"test":"babel --presets es2015-loose,stage-1 --plugins transform-runtime test/ --out-dir test-app/ && mocha test-app/","test-cov":"babel --presets es2015-loose,stage-1 --plugins transform-runtime test/ --out-dir test-app/ && node_modules/jscover/bin/jscover src test-cov && node_modules/jscover/bin/jscover test-app test-cov && mocha test-cov --reporter=mocha-lcov-reporter > test-cov/coverage.lcov","prepublish":"rm -rf dist && mkdir -p dist && npm run build-dev && npm run build-prod","build-dev":"browserify --standalone wait src/wait-promise.js > dist/wait-promise.js","build-prod":"browserify --standalone wait src/wait-promise.js | uglifyjs -cm > dist/wait-promise.min.js"},"keywords":["promise","node","wait","before","after","every","until","async"],"devDependencies":{"browserify":"^13.0.0","uglify-js":"^2.6.2","request":"*","mocha":"^2.3.4","mocha-lcov-reporter":"^1.2.0","jscover":"^1.0.0","chai":"^3.4.1","babel-cli":"6.x.x","babel-runtime":"6.x.x","babel-preset-es2015-loose":"6.x.x","babel-preset-stage-1":"6.x.x","babel-plugin-transform-runtime":"6.x.x"},"author":{"name":"akira-cn"},"license":"MIT","gitHead":"2a8789b4692c112cb26bf6c20f6d0d00b8d8eee3","_id":"wait-promise@0.1.0","_shasum":"6b9fded4abc9fc8f9d112c757873d16d083f87c1","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.0.0","_npmUser":{"name":"akira_cn","email":"19511344@qq.com"},"maintainers":[{"name":"akira_cn","email":"19511344@qq.com"}],"dist":{"shasum":"6b9fded4abc9fc8f9d112c757873d16d083f87c1","tarball":"https://registry.npmjs.org/wait-promise/-/wait-promise-0.1.0.tgz","integrity":"sha512-B0ksby8EFC+vuF/cZdxOnHPACsDlVpxPO/Vt//dsM+wTUhgaahs9wgkQw6wPjg88AF6AyM/gsOzOSdJuCsPZpg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE+Awt8sh1Wn8hM4N0xcEzuHDMZu9jD/nY0OVVYis25IAiEAnHpeosBIgY0tmBQ79pr+fLJYWP6nZlxsnwsDUWpxrzE="}]},"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/wait-promise-0.1.0.tgz_1462445995252_0.6334700570441782"}},"0.2.0":{"name":"wait-promise","version":"0.2.0","description":"Make a promise, waiting for a specified amount of time, util something is done.","main":"src/wait-promise.js","scripts":{"test":"babel --presets es2015-loose,stage-1 --plugins transform-runtime test/ --out-dir test-app/ && mocha test-app/","test-cov":"babel --presets es2015-loose,stage-1 --plugins transform-runtime test/ --out-dir test-app/ && node_modules/jscover/bin/jscover src test-cov && mocha test-app --reporter=mocha-lcov-reporter > test-cov/coverage.lcov","prepublish":"rm -rf dist && mkdir -p dist && npm run build-dev && npm run build-prod","build-dev":"browserify --standalone wait src/wait-promise.js > dist/wait-promise.js","build-prod":"browserify --standalone wait src/wait-promise.js | uglifyjs -cm > dist/wait-promise.min.js"},"keywords":["promise","node","wait","before","after","every","until","async"],"devDependencies":{"browserify":"^13.0.0","uglify-js":"^2.6.2","request":"*","mocha":"^2.3.4","mocha-lcov-reporter":"^1.2.0","jscover":"^1.0.0","chai":"^3.4.1","babel-cli":"6.x.x","babel-runtime":"6.x.x","babel-preset-es2015-loose":"6.x.x","babel-preset-stage-1":"6.x.x","babel-plugin-transform-runtime":"6.x.x"},"author":{"name":"akira-cn"},"license":"MIT","gitHead":"a3d2c7eb1f8067ca7150ff1579cc12249d6720d0","_id":"wait-promise@0.2.0","_shasum":"1e007b110779f8c9616d95710ec26829ddbb75ce","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.0.0","_npmUser":{"name":"akira_cn","email":"19511344@qq.com"},"maintainers":[{"name":"akira_cn","email":"19511344@qq.com"}],"dist":{"shasum":"1e007b110779f8c9616d95710ec26829ddbb75ce","tarball":"https://registry.npmjs.org/wait-promise/-/wait-promise-0.2.0.tgz","integrity":"sha512-P9B30cIo5XlP4bTWc1qs14NNtvVInebIvnXQZvPht+Jcv53tS/SuI3UTG/389rsEFn0WMyIhzSz8Bz3+LBSULA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID7R5ScBdPBgpU4FqxMRawPndVWNszagpntlg46FROSQAiBzFbGrZusps+naGxOXuqZoTLIMKMD8M3uTa9UhGBpQvg=="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/wait-promise-0.2.0.tgz_1462501203534_0.10623146523721516"}},"0.3.0":{"name":"wait-promise","version":"0.3.0","description":"Make a promise, waiting for a specified amount of time, util something is done.","main":"src/wait-promise.js","scripts":{"test":"babel --presets es2015-loose,stage-1 --plugins transform-runtime test/ --out-dir test-app/ && mocha test-app/","test-cov":"babel --presets es2015-loose,stage-1 --plugins transform-runtime test/ --out-dir test-app/ && node_modules/jscover/bin/jscover src test-cov && mocha test-app --reporter=mocha-lcov-reporter > test-cov/coverage.lcov","prepublish":"rm -rf dist && mkdir -p dist && npm run build-dev && npm run build-prod","build-dev":"browserify --standalone wait src/wait-promise.js > dist/wait-promise.js","build-prod":"browserify --standalone wait src/wait-promise.js | uglifyjs -cm > dist/wait-promise.min.js"},"keywords":["promise","node","wait","before","after","every","until","async"],"devDependencies":{"browserify":"^13.0.0","uglify-js":"^2.6.2","request":"*","mocha":"^2.3.4","mocha-lcov-reporter":"^1.2.0","jscover":"^1.0.0","chai":"^3.4.1","babel-cli":"6.x.x","babel-runtime":"6.x.x","babel-preset-es2015-loose":"6.x.x","babel-preset-stage-1":"6.x.x","babel-plugin-transform-runtime":"6.x.x"},"author":{"name":"akira-cn"},"license":"MIT","gitHead":"4d0a4565089c6217eb73a038e453362b0823d6c7","_id":"wait-promise@0.3.0","_shasum":"3f50cecacde1febffdcef11859c10e9b91ef3160","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.0.0","_npmUser":{"name":"akira_cn","email":"19511344@qq.com"},"maintainers":[{"name":"akira_cn","email":"19511344@qq.com"}],"dist":{"shasum":"3f50cecacde1febffdcef11859c10e9b91ef3160","tarball":"https://registry.npmjs.org/wait-promise/-/wait-promise-0.3.0.tgz","integrity":"sha512-fyEQYOedtCmlN1Soi/b37j9Pro17eivICKH77hZoV8v46vgQp9g2vin/utcbEX+pI1+y46isqdkspclzebSdfw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCYOq+Tio6yE639btB+GfCdg7UKUNPq5QjtaTMiegmMzgIgIVySFE5tqbc+fzrSzGoPBC/t/FEIJ5jn1fPKmmnU61Y="}]},"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/wait-promise-0.3.0.tgz_1463016470967_0.6293407939374447"}},"0.3.1":{"name":"wait-promise","version":"0.3.1","description":"Make a promise, waiting for a specified amount of time, util something is done.","main":"src/wait-promise.js","scripts":{"test":"babel --presets es2015-loose,stage-1 --plugins transform-runtime test/ --out-dir test-app/ && mocha test-app/","test-cov":"babel --presets es2015-loose,stage-1 --plugins transform-runtime test/ --out-dir test-app/ && node_modules/jscover/bin/jscover src test-cov && mocha test-app --reporter=mocha-lcov-reporter > test-cov/coverage.lcov","prepublish":"rm -rf dist && mkdir -p dist && npm run build-dev && npm run build-prod","build-dev":"browserify --standalone wait src/wait-promise.js > dist/wait-promise.js","build-prod":"browserify --standalone wait src/wait-promise.js | uglifyjs -cm > dist/wait-promise.min.js"},"keywords":["promise","node","wait","before","after","every","and","until","till","async"],"devDependencies":{"browserify":"^13.0.0","uglify-js":"^2.6.2","request":"*","mocha":"^2.3.4","mocha-lcov-reporter":"^1.2.0","jscover":"^1.0.0","chai":"^3.4.1","babel-cli":"6.x.x","babel-runtime":"6.x.x","babel-preset-es2015-loose":"6.x.x","babel-preset-stage-1":"6.x.x","babel-plugin-transform-runtime":"6.x.x"},"author":{"name":"akira-cn"},"license":"MIT","gitHead":"5e03897fc1d5f93475146718bca16c6e822e4356","_id":"wait-promise@0.3.1","_shasum":"9861edb361e2440ce2c37c1db1141de0ebaf2626","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.0.0","_npmUser":{"name":"akira_cn","email":"19511344@qq.com"},"maintainers":[{"name":"akira_cn","email":"19511344@qq.com"}],"dist":{"shasum":"9861edb361e2440ce2c37c1db1141de0ebaf2626","tarball":"https://registry.npmjs.org/wait-promise/-/wait-promise-0.3.1.tgz","integrity":"sha512-S8YCh3SI8L5eCMAXKP+EcWHWwv1T47IMN/V+/Uavmv7aHtaes1+z2FDC7YKr90CvX6xd88BuKtC6uBa8QnTXCA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAOw1F0MoiztmsGIMnJygEFe8hydAeLd/yOvHLEdX34rAiBQAvqOme53XOHOT7BGUfeG2ip4SagTLBYQT2UtQluVBQ=="}]},"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/wait-promise-0.3.1.tgz_1463018136223_0.31732826214283705"}},"0.3.2":{"name":"wait-promise","version":"0.3.2","description":"Make a promise, waiting for a specified amount of time, util something is done.","main":"src/wait-promise.js","scripts":{"test":"babel --presets es2015-loose,stage-1 --plugins transform-runtime test/ --out-dir test-app/ && mocha test-app/","test-cov":"babel --presets es2015-loose,stage-1 --plugins transform-runtime test/ --out-dir test-app/ && babel src/ --plugins transform-coverage --out-dir test-cov && mocha test-app --reporter=mocha-lcov-reporter > test-cov/coverage.lcov","prepublish":"rm -rf dist && mkdir -p dist && npm run build-dev && npm run build-prod","build-dev":"browserify --standalone wait src/wait-promise.js > dist/wait-promise.js","build-prod":"browserify --standalone wait src/wait-promise.js | uglifyjs -cm > dist/wait-promise.min.js"},"keywords":["promise","node","wait","before","after","every","and","until","till","async"],"devDependencies":{"browserify":"^13.0.0","uglify-js":"^2.6.2","request":"*","mocha":"^2.3.4","mocha-lcov-reporter":"^1.2.0","chai":"^3.4.1","babel-cli":"6.x.x","babel-runtime":"6.x.x","babel-preset-es2015-loose":"6.x.x","babel-preset-stage-1":"6.x.x","babel-plugin-transform-runtime":"6.x.x","babel-plugin-transform-coverage":"^0.1.5"},"author":{"name":"akira-cn"},"license":"MIT","gitHead":"82301192087aff2a55009d5e00ef77fbff1ab376","_id":"wait-promise@0.3.2","_shasum":"060cf1878b5e84abca6d74c8d2bfb094c6eb6299","_from":".","_npmVersion":"2.15.1","_nodeVersion":"4.4.4","_npmUser":{"name":"akira_cn","email":"19511344@qq.com"},"maintainers":[{"name":"akira_cn","email":"19511344@qq.com"}],"dist":{"shasum":"060cf1878b5e84abca6d74c8d2bfb094c6eb6299","tarball":"https://registry.npmjs.org/wait-promise/-/wait-promise-0.3.2.tgz","integrity":"sha512-xvH3I6iUChEVZ8dQO69zJRg2u/+MtfnEt97mtMSFaAMFv7oyLlG2XKLW8t08t5tOF1Cpmdip48iQQ/P1e7dGLw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD+O1al6mPZkXSu2AsscxoPiDKO5uNKHeRtKsq2trzG8QIhANhePMIKEkbO2aBdRd7X9iw2pQos+/d7SiPNd2AGJo0L"}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/wait-promise-0.3.2.tgz_1469512668461_0.35925149195827544"}},"0.4.1":{"name":"wait-promise","version":"0.4.1","description":"Make a promise, waiting for a specified amount of time, util something is done.","main":"src/wait-promise.js","scripts":{"test":"babel --presets es2015-loose,stage-1 --plugins transform-runtime test/ --out-dir test-app/ && mocha test-app/","test-cov":"babel --presets es2015-loose,stage-1 --plugins transform-runtime test/ --out-dir test-app/ && babel src/ --plugins transform-coverage --out-dir test-cov && mocha test-app --reporter=mocha-lcov-reporter > test-cov/coverage.lcov","prepublish":"rm -rf dist && mkdir -p dist && npm run build-dev && npm run build-prod","build-dev":"browserify --standalone wait src/wait-promise.js > dist/wait-promise.js","build-prod":"browserify --standalone wait src/wait-promise.js | uglifyjs -cm > dist/wait-promise.min.js"},"keywords":["promise","node","wait","before","after","every","and","until","till","async"],"devDependencies":{"browserify":"^13.0.0","uglify-js":"^2.6.2","request":"*","mocha":"^2.3.4","mocha-lcov-reporter":"^1.2.0","chai":"^3.4.1","babel-cli":"6.x.x","babel-runtime":"6.x.x","babel-preset-es2015-loose":"6.x.x","babel-preset-stage-1":"6.x.x","babel-plugin-transform-runtime":"6.x.x","babel-plugin-transform-coverage":"^0.1.5"},"author":{"name":"akira-cn"},"license":"MIT","gitHead":"a6e11e521903ef0a1dbf3badd21d57ace1f5beb4","_id":"wait-promise@0.4.1","_shasum":"1ead8f82d291a25010c0b1eef8d4711323cc4dab","_from":".","_npmVersion":"2.15.1","_nodeVersion":"4.4.4","_npmUser":{"name":"akira_cn","email":"19511344@qq.com"},"maintainers":[{"name":"akira_cn","email":"19511344@qq.com"}],"dist":{"shasum":"1ead8f82d291a25010c0b1eef8d4711323cc4dab","tarball":"https://registry.npmjs.org/wait-promise/-/wait-promise-0.4.1.tgz","integrity":"sha512-qr38zpL1yTDNbRzuBNEGOp3O6+5H3j5pUhK6lGo88gOHooP++Tk8eT4v+8/mhMPjICrY5/zOJJO+bDT3i0k/qA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHhu7QMSiwiGSPtIGT2xTWYnkfNWIg7o0jPk0KYefq6oAiANLI0w830u+V8kR12l+ehlk11BRWOCSoHUikcEQkXK+A=="}]},"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/wait-promise-0.4.1.tgz_1469630698175_0.3348216584417969"}}},"readme":"# wait-promise\n\n[![npm status](https://img.shields.io/npm/v/wait-promise.svg)](https://www.npmjs.org/package/wait-promise)\n[![build status](https://api.travis-ci.org/akira-cn/wait-promise.svg?branch=master)](https://travis-ci.org/akira-cn/wait-promise) \n[![dependency status](https://david-dm.org/akira-cn/wait-promise.svg)](https://david-dm.org/akira-cn/wait-promise) \n[![coverage status](https://img.shields.io/coveralls/akira-cn/wait-promise.svg)](https://coveralls.io/github/akira-cn/wait-promise)\n\nMake a promise, waiting for a specified amount of time, util something is done. Syntactic sugar for setTimeout and setInterval. Based on [ES6 Promise](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Promise).\n\n## Use it in nodeJS\n\nA version compiled to ES5 in CJS format is published to npm as wait-promise.\n\n```bash\nnpm install wait-promise\n```\n\nin ES5:\n\n```js\nvar wait = require('wait-promise');\n```\n\nin ES6/7:\n\n```js\nimport {check, until, till, before, after, limit, every, and, sleep} from 'wait-promise';\n```\n\n## Use it on browser\n\n**wait-promise CDN**\n\n```html\n<script src=\"https://s5.ssl.qhimg.com/!e29d1180/wait-promise.min.js\"></script>\n```\n\nYou can use it with any AMD loader or **standalone**\n\n```js\nvar promise = wait.before(5000).until(function(){\n  return typeof Babel !== 'undefined';\n});\n\npromise.then(function(){\n  code = Babel.transform(code, { presets: ['es2015-loose', 'react', 'stage-0'] }).code;\n}).catch(function(){\n  console.error('Cannot load babeljs.');\n});\n```\n\n## API Doc\n\n* [check](#check)\n* [until](#until)\n* [till](#till)\n* [before](#before)\n* [after](#after)\n* [limit](#limit)\n* [every](#every)\n* [and](#and)\n* [sleep](#sleep)\n\n### check\n\n**wait.check(condition)** always returns a promise. If **condition** throws error or returns `false` value explicitly, the promise will be rejected.\n\n```js\nlet i = 1;\nlet promise = wait.check(function(){\n  return i < 1;\n});\npromise.catch(function(err){\n  console.log(err.message); //will be check failed\n});\n```\n\n### until\n\n**wait.until(condition)**\n\nCheck condition async and re-check every 100ms until it neighter throws error nor returns `false`.\n\n```js\nlet i = 0;\nlet promise = wait.until(function(){\n\treturn ++i >= 10;\n});\npromise.then(function(){\n\tconsole.log(i); //i will be 10\n});\n```\n\n**With async/wait**\n\n```js\nlet until = wait.until;\n\nasync function foo(){\n\tlet i = 0;\n\t\n\tawait until(() => ++i > 10);\n\tbar();\n}\n```\n\n### till\n\n**wait.till(condition)**\n\nCheck condition async and re-check every 100ms till it **explicitly** returns `true`. If condition throws error, the promise will be rejected.\n\n```js\nlet i = 0;\nlet promise = wait.till(function(){\n  return ++i >= 10;\n});\npromise.then(function(){\n  console.log(i); //i will be 10\n});\n```\n\n### before\n\n**wait.before(millisec).until(condition)**\n\nCheck condition in `millisec`. If time out, the promise will be rejected.\n\n```js\nlet i = 0;\nlet promise = wait.before(200).until(function(){\n\treturn ++i >= 10;\n});\npromise.catch(function(err){\n\tconsole.log(i, err.message); //2 check failed\n});\n```\n\n### after\n\n**wait.after(millisec).check(condition)**\n\nCheck condition after `millisec`.\n\n```js\nlet i = 1;\nsetTimeout(function(){\n\t++i;\n}, 0); \nlet promise = wait.after(1000).check(function(){\n\treturn i > 200;\n});\n```\n\n### limit\n\nCheck condition with limit times. If exceed the limit, the promise will be rejected.\n\n```js\nlet i = 0;\nlet p = wait.limit(10).until(function(){\n  i++;\n  return false;\n});\nreturn p.catch(function(){\n  console.log(i); //i will be 10\n});\n```\n\n### every\n\n**wait.every(millisec[,limit]).until(condition)**\n\nChange time interval from 100ms to `millisec`。\n\n```js\nlet i = 0;\nlet promise = wait.every(10).before(200).until(function(){\n\treturn ++i >= 10;\n});\npromise.then(function(){\n\tconsole.log(i) // i will be 10\n});\n```\n\n**every with limit**\n\n`wait.every(1, 10)` is equal to `wait.every(1).limit(10)` \n\n```js\nlet i = 0;\nlet p = wait.every(1, 10).till(function(){\n  return ++i >= 10;\n});\np.catch(function(){\n  console.log(i); //i will be 10\n});\n```\n\n### and\n\n`wait.every(millisec).and(func).until(condition)`\n\nCheck every millisec time **and do something** before checking condition.\n\n```js\nasync function foo(){\n  let i = 0, j = 0;\n  await and(() => j++).until(() => j >= 3);\n  await every(50).and(() => i++).until(()=> i >= 5);\n  console.log(i + j); //will be 8\n}\n```\n\n### sleep\n\n**wait.sleep(millisec)**\n\nDo nothing but sleep `millisec`\n\n```js\nvar promise = wait.sleep(200);\npromise.then(function(){\n\t//do sth.\n});\n```\n\n**With async/await**\n\n```js\nlet sleep = wait.sleep;\n\nasync function foo(){\n\tawait sleep(500);\n\tbar();\n} \n```\n\n## LICENSE\n\n[MIT](LICENSE)\n","maintainers":[{"name":"akira_cn","email":"19511344@qq.com"}],"time":{"modified":"2022-06-28T21:29:20.257Z","created":"2016-05-05T10:59:58.055Z","0.1.0":"2016-05-05T10:59:58.055Z","0.2.0":"2016-05-06T02:20:04.026Z","0.3.0":"2016-05-12T01:27:53.902Z","0.3.1":"2016-05-12T01:55:37.856Z","0.3.2":"2016-07-26T05:57:48.703Z","0.4.1":"2016-07-27T14:45:01.942Z"},"keywords":["promise","node","wait","before","after","every","and","until","till","async"],"author":{"name":"akira-cn"},"license":"MIT","readmeFilename":"README.md"}