一度だけイベントを受信し、自動的にリスナーを解除する方法を解説します。
「初期化完了」や「ワンタイムトークン受信」など、1回切りの通知を待機するのに便利です。
使用方法
listen の代わりに once を使用します。
import { once } from '@tauri-apps/api/event';
// "init-complete" イベントを1回だけ待つ
const unlisten = await once<string>('init-complete', (event) => {
console.log('Initialization complete:', event.payload);
// このコールバック実行後、自動的にリスナーは削除される
});
// 万が一イベントが来なくて手動で解除したい場合も unlisten 関数を使える
// unlisten();
Rust 側でも同様に app.once が利用可能です。
app.once("app-ready", |event| {
println!("App is ready!");
});