イベントを一度だけ受信する (once)

Recipe ID: front-007

一度だけイベントを受信し、自動的にリスナーを解除する方法を解説します。
「初期化完了」や「ワンタイムトークン受信」など、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!");
});