flag-waiter
v1.0.5
Published
waiter for npm
Downloads
2
Readme
專案名稱
Waiter 的使用方式
簡介
語言 : Typescript/Javascript
主旨 :
- WaitMilliseconds
- Wait
- WaitForAny
- WaitForAll
快速開始
環境建立
npm
npm i flag-waiter
or yarn
yarn add flag-waiter
使用範例
引入 Package
- 建立 async function
- 加入下方程式碼
NodeJs
const waiter = require("flag-waiter");
ES
import * as waiter from "flag-waiter";
- 修改 start 的函式為 async
WaitMilliseconds
async function start() {
console.log("開始");
await waiter.WaitMilliseconds(3000); //等待3秒
console.log("經過3秒");
}
Wait
建立一個可觸發的 Flag, 用以通知 waiter 停止等待
var flag;
async function start() {
flag = new waiter.Flag("myFlag");
console.log("開始");
await waiter.Wait(flag, 10000); //flag , timeout(ms)
console.log("flag被觸發或timeout");
}
//使用方式可做成button進行觸發
async function trigger() {
await waiter.WaitMilliseconds(3000); //等待3秒
flag.set(true); //觸發Flag
console.log("觸發Flag");
}
start();
trigger();
WaitAll
建立多個 Flag, 需等待全部 Flag 被觸發或是全部 Timeout 才可繼續進行
var flag1;
var flag2;
async function start() {
flag1 = new waiter.Flag("flag1");
flag2 = new waiter.Flag("flag2");
console.log("開始");
await waiter.WaitAll([flag1, flag2], [10000, 10000]); //flag , timeout(ms)
console.log("flag全被觸發或timeout");
}
//使用方式可做成button進行觸發
async function trigger1() {
await waiter.WaitMilliseconds(3000); //等待3秒
flag1.set(true); //觸發Flag
console.log("觸發Flag1");
}
async function trigger2() {
await waiter.WaitMilliseconds(5000); //等待3秒
flag2.set(true); //觸發Flag
console.log("觸發Flag2");
}
start();
trigger1();
trigger2();
WaitAny
建立多個 Flag, 任何一個 Flag 被觸發都會繼續進行
var flag1;
var flag2;
async function start() {
flag1 = new waiter.Flag("flag1");
flag2 = new waiter.Flag("flag2");
console.log("開始");
await waiter.WaitAny([flag1, flag2], [10000, 10000]); //flags , timeouts(ms)
console.log("flag其中一個被觸發或timeout");
}
//使用方式可做成button進行觸發
async function trigger1() {
await waiter.WaitMilliseconds(3000); //等待3秒
flag1.set(true); //觸發Flag
console.log("觸發Flag1");
}
async function trigger2() {
await waiter.WaitMilliseconds(5000); //等待3秒
flag2.set(true); //觸發Flag
console.log("觸發Flag2");
}
start();
trigger1();
trigger2();