1.0.5 • Published 3 years ago

flag-waiter v1.0.5

Weekly downloads
51
License
MIT
Repository
-
Last release
3 years ago

專案名稱

Waiter 的使用方式

簡介

語言 : Typescript/Javascript

主旨 :

  • WaitMilliseconds
  • Wait
  • WaitForAny
  • WaitForAll

快速開始

環境建立

npm

npm i flag-waiter

or yarn

yarn add flag-waiter

使用範例

引入 Package

  1. 建立 async function
  2. 加入下方程式碼

NodeJs

const waiter = require("flag-waiter");

ES

import * as waiter from "flag-waiter";
  1. 修改 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();
1.0.5

3 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago