{"id":13622601,"url":"https://github.com/brummelte/sleep-promise","last_synced_at":"2025-05-15T17:04:16.046Z","repository":{"id":36914914,"uuid":"41221963","full_name":"brummelte/sleep-promise","owner":"brummelte","description":"Resolves a promise after a specified delay.","archived":false,"fork":false,"pushed_at":"2025-05-13T12:08:08.000Z","size":756481,"stargazers_count":87,"open_issues_count":7,"forks_count":9,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-13T13:28:10.161Z","etag":null,"topics":["javascript","promise"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/brummelte.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2015-08-22T19:45:40.000Z","updated_at":"2025-05-08T03:43:57.000Z","dependencies_parsed_at":"2024-10-13T22:32:22.471Z","dependency_job_id":"31cc2296-acd6-44d5-bf5b-878e26e1dc27","html_url":"https://github.com/brummelte/sleep-promise","commit_stats":{"total_commits":495,"total_committers":15,"mean_commits":33.0,"dds":0.5313131313131313,"last_synced_commit":"de7c95f544d42d050371191165101f773b3bd03f"},"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brummelte%2Fsleep-promise","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brummelte%2Fsleep-promise/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brummelte%2Fsleep-promise/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brummelte%2Fsleep-promise/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brummelte","download_url":"https://codeload.github.com/brummelte/sleep-promise/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254384982,"owners_count":22062422,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["javascript","promise"],"created_at":"2024-08-01T21:01:21.508Z","updated_at":"2025-05-15T17:04:11.030Z","avatar_url":"https://github.com/brummelte.png","language":"JavaScript","funding_links":[],"categories":["JavaScript","Modules","模块"],"sub_categories":["Promise"],"readme":"# sleep-promise [![License][license-image]][license-url] [![NPM version][npm-image]][npm-url] [![NPM downloads][npm-downloads-image]][npm-downloads-url] [![Build][build-image]][build-url] [![Coverage][coverage-image]][coverage-url]\n\n_sleep-promise_ resolves a promise after a specified delay.\n\n## Installation\n\n### node.js\n\n    npm install sleep-promise\n\n## Usage async / await\n\n```javascript\nimport sleep from 'sleep-promise';\n\n(async () =\u003e {\n    await sleep(2000);\n    console.log('2 seconds later …');\n})();\n```\n\n## Usage ES5\n\n```javascript\nvar sleep = require('sleep-promise');\n\nsleep(2000).then(function() {\n    console.log('2 seconds later …');\n});\n```\n\n## Usage in a promise chain\n\n```javascript\nimport sleep from 'sleep-promise';\n\nlet trace = value =\u003e {\n    console.log(value);\n    return value;\n};\n\nsleep(2000)\n    .then(() =\u003e 'hello')\n    .then(trace)\n    .then(sleep(1000))\n    .then(value =\u003e value + ' world')\n    .then(trace)\n    .then(sleep(500))\n    .then(value =\u003e value + '!')\n    .then(trace);\n\n// [2 seconds sleep]\n// hello\n// [1 second sleep]\n// hello world\n// [500 ms sleep]\n// hello world!\n```\n\n## Usage in a test file that mocks setTimeout\n\n```javascript\nimport sinon from 'sinon';\nimport sleep from 'sleep-promise';\n\nconst clock = sinon.useFakeTimers();\n\n(async () =\u003e {\n    // 2 seconds faked by sinon\n    const sleepPromise = sleep(2000);\n    clock.tick(2000);\n    await sleepPromise;\n    console.log('instant');\n\n    // Caches global setTimeout before sinon replaced it\n    const sleepPromise2 = sleep(2000, { useCachedSetTimeout: true });\n    clock.tick(2000);\n    await sleepPromise2;\n    console.log('2 seconds later');\n})();\n```\n\n## License\n\n[MIT](LICENSE.md)\n\n[license-image]: https://img.shields.io/github/license/brummelte/sleep-promise.svg\n[license-url]: https://github.com/brummelte/sleep-promise/blob/master/LICENSE.md\n[npm-image]: https://img.shields.io/npm/v/sleep-promise.svg\n[npm-url]: https://www.npmjs.com/package/sleep-promise\n[npm-downloads-image]: https://img.shields.io/npm/dm/sleep-promise.svg\n[npm-downloads-url]: https://www.npmjs.com/package/sleep-promise\n[build-image]: https://img.shields.io/circleci/project/github/brummelte/sleep-promise/master.svg\n[build-url]: https://circleci.com/gh/brummelte/sleep-promise\n[coverage-image]: https://img.shields.io/coveralls/github/brummelte/sleep-promise/master.svg\n[coverage-url]: https://coveralls.io/github/brummelte/sleep-promise?branch=master\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrummelte%2Fsleep-promise","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrummelte%2Fsleep-promise","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrummelte%2Fsleep-promise/lists"}