@totto2727/sleep
v0.1.1
Published
sleep util function
Readme
@totto2727/sleep
概要
他のパッケージとの差別点
インストール
前提
Node.js or Bun
npm add @totto2727/sleepyarn add @totto2727/sleeppnpm add @totto2727/sleepbun add @totto2727/sleepimport * as r from "@totto2727/sleep"ブラウザ or Deno
import * as r from "https://esm.sh/@totto2727/sleep"Example
https://github.com/totto2727-org/sleep/blob/main/src/index.test.mts
Usage
sleep
処理を停止しイベントループを回すためのPromiseと、強制的にPromiseを解決させて処理を進める関数を含むオブジェクトを返却します。
非同期処理(Promise、async/await)との併用が前提であり、await sleep(time).promiseといったような形で利用する必要があります。
関数を実行しただけでは待機されない点に注意してください。
また、待機中に並行して処理を行い、その結果に応じて待機を強制的に解除する必要がある場合は、以下の用に別処理に関数を渡して実行した上で、待機させてください。
async function concurrentProcessing(forceResolve: () => void): Promise<void> {
// ...
forceResolve();
}
const s = sleep(longTime);
concurrentProcessing(s.forceResolve);
await s.promise;ミリ秒単位での指定が可能ですが、イベントループの仕様上、他の処理が優先される可能性があるため、厳密には指定した秒数にならない可能性があります。 そのため、最低限この秒数待機できればいい(E2Eテストの待機やスクレイピングの間隔)という場面での利用を推奨しています。 厳密な秒数での停止が必要な場合は、他のライブラリを使用してください。
影響を受けた言語及びライブラリ
開発者向け
開発環境
- 実行環境
- Bun >1.0.0
Jetbrains
- Plugin
VSCode
TODO
開発手順
- このリポジトリをフォークする
- フォークしたリポジトリをローカルにクローンしてプロジェクトルートに移動する
- パッケージのインストール
bun i - 開発する
- 変更内容を記述する
bun changeset - コミット前
bun precommit - コミット&プッシュ
- フォークしたリポジトリからプルリクエストを作成する
- 以下は管理者がバージョンアップする場合のみ
- バージョンの変更とプッシュ
bun changeset version - mainブランチにマージする
- タグをつけてプッシュ
bun changeset tag - CI/CDが自動でNPMに公開する
