semaphore による同時実行制御の例。 以下は new Semaphore(1) で同時実行数を1にした実行例です。 ■プログラム
import { setTimeout } from 'timers/promises'; import { Semaphore } from 'await-semaphore'; (() => { const s = new Semaphore(1); s.use(async () => { console.log('before wait 1'); await setTimeout(5000); console.log('after wait 1'); }); s.use(async () => { console.log('before wait 2'); await setTimeout(1000); console.log('after wait 2'); }); })();
■実行結果
before wait 1 after wait 1 before wait 2 after wait 2