跳至主要内容

動態 Payload

呼叫 sendMessage 時,payload 欄位可以是值、也可以是函式。 函式版本會在每次發送時才執行,所以每次呼叫都會產生全新的 payload — 適合放時間戳、隨機 ID 或需要動態計算的 context。

發送 Payload

按兩個按鈕各幾次,對照兩種 payload 的差異。靜態 payload 在模組載入時就固定了;動態 payload 則會在每次呼叫時重新產生。

Payload 日誌

尚未發送任何 payload。

對照

靜態 Payload動態 Payload (Lambda)
計算時機定義當下每次呼叫
適合場景固定資料時間戳、隨機 ID
多次發送每次都一樣每次都不一樣

程式範例

// 靜態 payload — 值在定義當下就固定了
sendMessage({
text: "Hello",
payload: {
createdAt: Date.now(),
randomId: "abc123",
},
});

// 動態 payload — 值在發送時才產生
sendMessage({
text: "Hello",
payload: () => ({
createdAt: Date.now(),
randomId: Math.random().toString(36).slice(2),
}),
});