vivid-wait
TypeScript icon, indicating that this package has built-in type declarations

1.1.1 • Public • Published

vivid-wait

Simulate a lively waiting operation.

You can use "vivid-wait" if you want to control a fast-executing function to complete at a specific time. It makes the operation more realistic by controlling the easing of the progress.

Installation

npm install vivid-wait -S

Usage

If only to perform a wait operation

import { wait } from 'vivid-wait';

wait(5000).then(() => {
  // execute after five seconds
})

If want to control the completion time of the operation

import { wait } from 'vivid-wait';

wait(5000, {
  handler: () => new Promise((reslove) => {
    setTimeout(() => {
      reslove('vivid-wait');
    }, 100);
  })
}).then((result) => {
  // result will be obtained after a delay of five seconds
})

If want to add easing animation to the waiting process

<body>
  <h5>progress bars</h5>
  <div class="container">
    <strong class="progress" data-mode="linear"></strong>
    <strong class="progress" data-mode="ease"></strong>
    <strong class="progress" data-mode="ease-in"></strong>
    <strong class="progress" data-mode="ease-out"></strong>
    <strong class="progress" data-mode="ease-in-out"></strong>
    <strong class="progress" data-mode="random"></strong>
  </div>
</body>
import { wait } from 'vivid-wait';

function drawProgressBars () {
  const progressBars = document.querySelectorAll('.progress');

  progressBars.forEach(async bar => {
    wait(5000, {
      // the default easing mode is random
      mode: bar.getAttribute('data-mode'),
      // when the handler execution time exceeds the waiting time, the progress will be maintained at 99% until completed
      onUpdate: (percent, cancel) => {
      	bar.style.width = `${percent * 100}%`
        // you can cancel waiting when update, but need to pay attention to whether it is available when waiting finish
        // if (cancel) cancel();
      }
    }).then((result) => {
      // execute after five seconds
    });
  })
}

window.onload = drawProgressBars;

example

If you don't use module in the browser

window.vividWait.wait(5000).then(() => {
  // execute after five seconds
})

LICENSE

MIT

Package Sidebar

Install

npm i vivid-wait

Weekly Downloads

1

Version

1.1.1

License

MIT

Unpacked Size

937 kB

Total Files

14

Last publish

Collaborators

  • huanjinliu