https://github.com/vixalien/async-wait-then
wait, then do something asynchronously
https://github.com/vixalien/async-wait-then
Last synced: 2 months ago
JSON representation
wait, then do something asynchronously
- Host: GitHub
- URL: https://github.com/vixalien/async-wait-then
- Owner: vixalien
- License: mit
- Created: 2020-11-07T23:36:29.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2024-09-24T11:09:54.000Z (9 months ago)
- Last Synced: 2025-02-05T01:41:59.727Z (4 months ago)
- Language: JavaScript
- Size: 99.6 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
async-wait-then
----a package to: **wait, then do something asynchronously**.
- 📦 NPM: [npm][]
- 🌎 Browser: [unpkg][]
- 📂 Github: [vixalien/async-wait-then](https://www.github.com/vixalien/async-wait-then)
- ✍ Author: [@vixalien](https://www.github.com/vixalien)wait is yet another step in making `setTimeout` more efficient.
It also allow easy use of the [promises][] while removing all the `async` and `await` and `Promise`s in your app.
## installation
To use `wait`, you must first install it, it available on [npm][].
### npm
```bash
npm install async-wait-then
```Import as npm module:
```js
// Using ES6 syntax
import wait from 'async-wait-then';// Using CommonJS or requireJS syntax
let wait = require('async-wait-then');
```### browser
```xml
```
## example
To use it, you run `wait` with the time to wait as the only attribute
```js
// Pass on microseconds
wait(100).then(() => console.log("Just waited 😎."));
// Pass a string as parameter
wait('1 minute').then(() => console.log("One minute done"));
```## api
```js
wait(time: (String|Number)): Promise
```### Parameters:
- **time**: Time to wait before resolving the promise. can be a string or a number. if it's a number it's parsed as micro-seconds. If a string, it's parsed according to the [ms][] utility.
### Returns:
A promise, which you can attach `then()` to.
> Note: wait only resolves, it _never_ rejects. In other words: it only allows `.then()` to be called, not `.catch()`, if you listen for `catch`, no error is likely to be thrown, so it's useless.
## builds
Common builds are provided directly with the module, so if you ever wanted to require the umd build, you would do something like: `require("async-wait-then/dist/index.umd.js")`, you can replace umd for:
- esm
- cjs (default)all builds are provided (for convenience) in `/dist` folder.
also, minified builds are available, just use `.min.js` as the extension
## use cases
You may use this, when triggering notifications, or just to avoid using the ol' `setTimeout` API. In fact, it uses it, but with a Promise wrapper.
## todo
- Use `requestAnimationFrame` or `requestIdleCallback`, this is more efficient and works when no time was provided.
- Add tests## thanks
To: @zeit (Vercel) for the [ms][], which is used to transform dirty strings into micro-seconds.
## donate
[donate][] on PayPal.
[unpkg]: https://unpkg.com/async-wait-then
[donate]: https://www.paypal.com/donate/?cmd=_s-xclick&hosted_button_id=DTV2TLWFUNHY8&source=url
[ms]: https://github.com/zeit/ms
[npm]: https://www.npmjs.com/package/async-wait-then
[promises]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises#Creating_a_Promise_around_an_old_callback_API