asyncが入り込んだ時点で、JavaScriptの良さのひとつであった、勝手に(必然的に)同期化されるからレースコンディションとか考えなくていい、が失くなってしまうんだなあ、つらいなあ、というパッチ

github.com/tai2/Voic…

export const catcher =
  <T extends (...args: any[]) => Promise<any>>(
    f: T
  ): ((...parameters: Parameters<T>) => void) =>
  (...parameters: Parameters<T>) =>
    f(...parameters).catch((e) => {
      console.error(e);
    });

このような関数があると便利だと思うんだけど、どうだろう。たぶんすでにあるんだろうけど、名前がわからない…。