對象Chain
訊息處理器鏈處理對象
Chain 物件是fibjs 中的一個訊息處理器鏈處理對象,用於連結一系列訊息處理器,按照指定的順序鍊式處理。建立Chain 物件的方法如下:
1
2
3var chain = new mq.Chain([
func1, func2
]);
在此建立方法中,func1 和func2 都是訊息處理器的函數物件。Chain 物件將這些處理器依序依序連結在一起,形成一個處理器鏈。處理器在處理每個訊息時,都可以對訊息進行自訂的處理,然後再將訊息交給下一個處理器進行處理。這樣,一個訊息就可以一步步地被處理到最終的狀態。
Chain 物件的invoke()函數用於處理一個訊息或物件。呼叫此函數時,Chain 物件會將訊息或物件依序傳遞給每個處理器,並按照處理器的順序依序處理,直到所有處理器都處理完畢。這個過程中,每個處理器都可以對訊息或物件進行自訂的處理,也可以選擇將訊息或物件傳遞給下一個處理器進行處理。
在實際應用中,Chain 物件可以應用到各種場景中,例如在web 框架中,可以將請求訊息依序傳遞給各個處理器進行處理;在訊息佇列中,可以將一批訊息依序傳遞給各個處理器進行處理。Chain 物件的使用方式非常靈活,可以根據實際需求進行自訂處理,具有很高的擴展性和可重複使用性。
繼承關係
建構函數
Chain
建構一個訊息處理器鏈處理對象
1new Chain(Array hdlrs);
呼叫參數:
- hdlrs: Array, 處理器數組
成員函數
append
新增處理器數組
1Chain.append(Array hdlrs);
呼叫參數:
- hdlrs: Array, 處理器數組
新增處理器
1Chain.append(Handler hdlr);
呼叫參數:
- hdlr:Handler, 內建訊息處理器,處理函數,鍊式處理數組,路由對象,詳見mq.Handler
invoke
處理一個訊息或對象
1Handler Chain.invoke(object v) async;
呼叫參數:
- v:object, 指定處理的訊息或對象
回傳結果:
- Handler, 返回下一步的處理器
toString
傳回物件的字串表示,一般回傳"[Native Object]",物件可以根據自己的特性重新實現
1String Chain.toString();
回傳結果:
- String, 傳回物件的字串表示
toJSON
傳回物件的JSON 格式表示,一般傳回物件定義的可讀屬性集合
1Value Chain.toJSON(String key = "");
呼叫參數:
- key: String, 未使用
回傳結果:
- Value, 傳回包含可JSON 序列化的值