Object 內建對象

物件Fiber

纖程操作對象,此對像不可直接建立

使用coroutine.start建立纖程後,將返回此對象,用於纖程處理和纖程間通訊。纖程主函數可以透過this 存取本纖程對象,也可透過coroutine.current取得目前纖程。

1 2 3 4 5 6 7 8 9
function func(v1) { console.log(v1 + this.v); } var fb = coroutine.start(func, 100); fb.v = 123; fb.join();

纖程局部儲存透過共享的Fiber 物件完成,透過coroutine.current取得目前纖程,透過修改和查詢其變數達到共享資料的目的。

1 2 3 4 5 6 7
function func() { console.log(coroutine.current().v); } coroutine.current().v = 100; func();

纖程在建立時,會自動複製目前纖程的局部變數到新的纖程,之後,各自的局部變數的修改不會互相影響,除非變數本身為物件引用。

1 2 3 4 5 6 7 8 9 10 11
function func() { console.log(coroutine.current().v); } coroutine.current().v = 100; var fb = coroutine.start(func); coroutine.current().v = 200; fb.join();

繼承關係

成員屬性

id

Long, 查詢纖程的唯一id

1
readonly Long Fiber.id;

caller

Fiber, 查詢纖程的呼叫纖程

1
readonly Fiber Fiber.caller;

stack

String, 查詢纖程的呼叫堆疊

1
readonly String Fiber.stack;

stack_usage

Integer, 查詢纖程已使用的堆疊尺寸

1
readonly Integer Fiber.stack_usage;

成員函數

join

等待纖程結束

1
Fiber.join();

toString

傳回物件的字串表示,一般回傳"[Native Object]",物件可以根據自己的特性重新實現

1
String Fiber.toString();

回傳結果:

  • String, 傳回物件的字串表示

toJSON

傳回物件的JSON 格式表示,一般傳回物件定義的可讀屬性集合

1
Value Fiber.toJSON(String key = "");

呼叫參數:

  • key: String, 未使用

回傳結果:

  • Value, 傳回包含可JSON 序列化的值