syusui-s / rabbit

🐰 A nostr client like TweetDeck
https://rabbit.syusui.net
GNU Affero General Public License v3.0
69 stars 13 forks source link

fix: uncaught exception when publishing reaction/repost #48

Closed WhiteCat6142 closed 9 months ago

WhiteCat6142 commented 1 year ago

Promise<Promise[]>だとPromiseの配列なので,どれかが失敗すると

Uncaught (in promise) blocked: no active subscription

となるのでPromise.anyでどれかのrelayに発信できたらそれでOKとしました これが発生するとちらつくみたいなのでホワイトアウト現象の解決の一助になるといいなと思います

syusui-s commented 1 year ago

PRありがとうございます。

各リレーの投稿状況をユーザに提示できるようにしたく、Promise<Promise[]>にしていたのですが、呼び出し側でエラーハンドリングをし忘れてしまっているようですね...。

変更いただいた内容についてですが、複数のPromiseを待つように変更するアイデアは良さそうなのですが、呼び出し側でPromise.allSettled を呼び出している箇所があり、そこと辻褄を合わせる必要があります。もしお時間があれば、useCommands 側ではなく、呼び出し側を変更していただけると嬉しいです。(大変そうであれば私のほうでかわりに問題に対処するので、クローズしていただいて問題ありません。)また、現在GitHub Actionsでテストを実行するように設定していないため、できれば型チェックとテストを実施していただけると嬉しいです。

Uncaught (in promise) blocked: no active subscription

こちらの例外はうろ覚えですが、たしか relay.snort.social(有料) のエラーだったと思います。課金していないと投稿ができなかった覚えがあります。

WhiteCat6142 commented 1 year ago

こんな形でどうでしょうか 追記 npm run test は以下でした

 Test Files  6 passed (6)
      Tests  50 passed (50)
WhiteCat6142 commented 1 year ago

再記: 手元で実際にdeplyして試したのですがreactionが10秒も反応しないとちょっとユーザビリティが落ちるんですよね なので5秒に半減させました 書き込めるリレーならtimeoutすることは基本的にはありません