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();

繼承關係

#lineWidth: 1.5 #font: Helvetica,sans-Serif #fontSize: 10 #leading: 1.6 #.this: fill=lightgray #.class: fill=white [<class>object|toString();toJSON()] [<this>Fiber|id;caller;stack|join()] [object] <:- [Fiber] Fiber id caller stack join() object toString() toJSON()

成員屬性

id

Long, 查詢纖程的唯一id

1
readonly Long Fiber.id;

caller

Fiber, 查詢纖程的調用纖程

1
readonly Fiber Fiber.caller;

stack

String, 查詢纖程的調用堆棧

1
readonly String Fiber.stack;

成員函數

join

等待纖程結束

1
Fiber.join();

toString

返回對象的字符串表示,一般返回"[Native Object]",對象可以根據自己的特性重新實現

1
String Fiber.toString();

返回結果:

  • String, 返回對象的字符串表示

toJSON

返回對象的JSON 格式表示,一般返回對象定義的可讀屬性集合

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

調用參數:

  • key: String, 未使用

返回結果:

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