0

私は、Appcelerator Titanium を使用して、さまざまな xhr 要求を行うモバイル アプリを作成しています。これは実際には Appcelerator Titanium 固有の質問ではありません。しかし、コードを書くとしたら、それが JavaScript であることを願っています。

アプリはそれ自体を認証する必要があり、ユーザーは何らかの操作のためにログに記録される必要があります。

私は、どのようなリクエストでも、次のようなあらゆる種類の応答を受け取る可能性があるところまで来ました。

  • 認証されていません
  • ログに記録されていません
  • 悪いパラメータ
  • 成功
  • ...

リクエストは、さまざまなモデル メソッドまたはヘルパーでラップされます。

問題は、私はこの種のアプリに慣れていないということです。私はベストプラクティスは何だろうと思っていました。

たとえば、いくつかの実際の質問は次のとおりです。

  • アプリが認証されていない場合 (トークンの期限切れ、最初の起動)、アプリは自分自身を認証してから、拒否された要求を再度送信する必要がありますか? (ユーザーに対して透過的)

  • アプリが起動するたびに認証リクエストを送信し、それを「忘れる」必要がありますか?

私が直面している問題は、リクエストごとにこれを処理しようとすると、コードがすぐに大きくなることです。ネストされたコールバック、再試行条件、管理するさまざまなイベント リスナーなどでいっぱいです。あまり「いい」とは感じません。そして、それはまったくDRYではありません。私が本当に必要としているのがリクエストである場合、何が間違っていたのかを確認し、修正してみてください(そうでない場合は認証し、可能であれば自動ログインするか、ログインUIを表示するなど)、それが機能する場合は再試行します元のリクエストを数回繰り返し、必要に応じて中止します。

私は約束のパターンを見てきましたが、理論しか知らず、それが私が必要とするものであるかどうかわかりません。

したがって、この特定の問題に関するアドバイスを歓迎します。「Facebook」のようなアプリがこれをどのように処理するのだろうか.

ご協力ありがとうございました

4

1 に答える 1