物件Fiber
纖程操作對象,此對像不可直接建立
使用coroutine.start建立纖程後,將返回此對象,用於纖程處理和纖程間通訊。纖程主函數可以透過this 存取本纖程對象,也可透過coroutine.current取得目前纖程。
1
2
3
4
5
6
7
8
9function 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
7function func() {
console.log(coroutine.current().v);
}
coroutine.current().v = 100;
func();
纖程在建立時,會自動複製目前纖程的局部變數到新的纖程,之後,各自的局部變數的修改不會互相影響,除非變數本身為物件引用。
1
2
3
4
5
6
7
8
9
10
11function func() {
console.log(coroutine.current().v);
}
coroutine.current().v = 100;
var fb = coroutine.start(func);
coroutine.current().v = 200;
fb.join();
繼承關係
成員屬性
id
Long, 查詢纖程的唯一id
1readonly Long Fiber.id;
caller
Fiber, 查詢纖程的呼叫纖程
1readonly Fiber Fiber.caller;
stack
String, 查詢纖程的呼叫堆疊
1readonly String Fiber.stack;
stack_usage
Integer, 查詢纖程已使用的堆疊尺寸
1readonly Integer Fiber.stack_usage;
成員函數
join
等待纖程結束
1Fiber.join();
toString
傳回物件的字串表示,一般回傳"[Native Object]",物件可以根據自己的特性重新實現
1String Fiber.toString();
回傳結果:
- String, 傳回物件的字串表示
toJSON
傳回物件的JSON 格式表示,一般傳回物件定義的可讀屬性集合
1Value Fiber.toJSON(String key = "");
呼叫參數:
- key: String, 未使用
回傳結果:
- Value, 傳回包含可JSON 序列化的值