Object 內建對象

對象Chain

訊息處理器鏈處理對象

Chain 物件是fibjs 中的一個訊息處理器鏈處理對象,用於連結一系列訊息處理器,按照指定的順序鍊式處理。建立Chain 物件的方法如下:

1 2 3
var chain = new mq.Chain([ func1, func2 ]);

在此建立方法中,func1 和func2 都是訊息處理器的函數物件。Chain 物件將這些處理器依序依序連結在一起,形成一個處理器鏈。處理器在處理每個訊息時,都可以對訊息進行自訂的處理,然後再將訊息交給下一個處理器進行處理。這樣,一個訊息就可以一步步地被處理到最終的狀態。

Chain 物件的invoke()函數用於處理一個訊息或物件。呼叫此函數時,Chain 物件會將訊息或物件依序傳遞給每個處理器,並按照處理器的順序依序處理,直到所有處理器都處理完畢。這個過程中,每個處理器都可以對訊息或物件進行自訂的處理,也可以選擇將訊息或物件傳遞給下一個處理器進行處理。

在實際應用中,Chain 物件可以應用到各種場景中,例如在web 框架中,可以將請求訊息依序傳遞給各個處理器進行處理;在訊息佇列中,可以將一批訊息依序傳遞給各個處理器進行處理。Chain 物件的使用方式非常靈活,可以根據實際需求進行自訂處理,具有很高的擴展性和可重複使用性。

繼承關係

建構函數

Chain

建構一個訊息處理器鏈處理對象

1
new Chain(Array hdlrs);

呼叫參數:

  • hdlrs: Array, 處理器數組

成員函數

append

新增處理器數組

1
Chain.append(Array hdlrs);

呼叫參數:

  • hdlrs: Array, 處理器數組

新增處理器

1
Chain.append(Handler hdlr);

呼叫參數:

  • hdlr:Handler, 內建訊息處理器,處理函數,鍊式處理數組,路由對象,詳見mq.Handler

invoke

處理一個訊息或對象

1
Handler Chain.invoke(object v) async;

呼叫參數:

  • v:object, 指定處理的訊息或對象

回傳結果:

  • Handler, 返回下一步的處理器

toString

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

1
String Chain.toString();

回傳結果:

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

toJSON

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

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

呼叫參數:

  • key: String, 未使用

回傳結果:

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