Open1

setTimeoutはデフォルトではpromiseを返却しないのに注意

toketoke

こんな感じでラップしてやらないとだめ

const wait = (ms) => new Promise((resolve) => setTimeout(resolve, ms));

wait(10 * 1000)
  .then(() => saySomething("10 seconds"))
  .catch(failureCallback);

svelte5の$effectは同期処理にしか対応してないので、デフォルトのsetTimeoutを使うと、上手くいかない(ms秒待って返却されるのはpromiseではないため)。