npm add @totto2727/sleep
yarn add @totto2727/sleep
pnpm add @totto2727/sleep
bun add @totto2727/sleep
import * as r from "@totto2727/sleep"
import * as r from "https://esm.sh/@totto2727/sleep"
https://github.com/totto2727-org/sleep/blob/main/src/index.test.mts
処理を停止しイベントループを回すための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
- Plugin
TODO
- このリポジトリをフォークする
- フォークしたリポジトリをローカルにクローンしてプロジェクトルートに移動する
- パッケージのインストール
bun i
- 開発する
- 変更内容を記述する
bun changeset
- コミット前
bun precommit
- コミット&プッシュ
- フォークしたリポジトリからプルリクエストを作成する
- 以下は管理者がバージョンアップする場合のみ
- バージョンの変更とプッシュ
bun changeset version
- mainブランチにマージする
- タグをつけてプッシュ
bun changeset tag
- CI/CDが自動でNPMに公開する