動態 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),
}),
});