問題タブ [moya]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
640 参照

ios - observeOn と subscribeOn を使用してアプリのフリーズの問題を解決する

多くのユーザーがアプリのフリーズについて不平を言っていますが、それはネットワーク リクエストが原因であると思われます。

再現するのは大変でしたが、私の解決策は、カスタム mapArray 関数に subscribeOn と observeOn を追加することでした。これは、moya リクエストの後、UI の使用前にチェーンされます。

質問:

  • フリーズの問題を解決するためのアプローチとして、subscribeOn とobserveOn を呼び出すこのシーケンスは理にかなっていますか?
  • 呼び出す関数のにsubscribeOn を呼び出すのは奇妙に感じますが、リクエストをさらに別のディスパッチ ブロックでラップしたくありません。

全体として、私は Moya と Alamofire でのスレッドの切り替えにかなり混乱しており、誰かが光を当ててくれることを願っています:

PS: moya でこれについて議論している問題を読んだところ、 alamofire がメイン スレッドでネットワーク呼び出しを行うことが言及されていますが、これも混乱を招きます。

PS2: このソリューションもこのブログ投稿に基づいていますが、私の質問は、上記の質問に加えて、ネットワーク呼び出しをバックグラウンド スレッドで実行することを提唱するのはなぜかということです。

0 投票する
2 に答える
1599 参照

swift - ファイル RXSwift Moya マルチパートをアップロードできません

Swift アプリケーションと API 間の通信を処理するために Moya を使用しています。データを投稿して取得することはできますが、ファイルを API サーバーに投稿することはできません。以下は私のコードです。

そして、以下は私が呼んだ方法です

応答がなく、API サーバーにヒットが送信されませんでした

0 投票する
1 に答える
1159 参照

swift - RxMoya で SuccessfulStatusCodes を適切にフィルター処理する方法

私は RxMoya を使用しており、fiterSuccesfulStatusCodes の使用法について疑問に思っていました。私の問題が何であるかを説明しようと思います...だから、このようなネットワーク呼び出しを使用すると

299 を超えるステータス コードで応答を受け取っても何も起こりません。私の問題は、ユーザーにエラー メッセージを表示したいということですが、filterSuccessfulStatusCodes の機能を調べると、次のようになります。

今、私たちは私が抱えている問題に近づいています。したがって、filterSuccessfulStatusCodes の実装は、この実装で Moya.Resposne のパブリック インスタンス関数を使用します。

ご覧のとおり、これは例外をスローします...しかし、上記の関数は再スローせず、ジェネリック型 E の Observable を返します。

私の最初の質問は、関数がスロー/再スローしない場合に return Observable.just(try response.filterSuccessfulStatusCodes()) を使用できるのはなぜですか。do/chatch? なしで try を使用できます (try!/try? を使用できることはわかっていますが、try を使用すると、rethrow を使用する場合しか想像できません)。

2 番目の質問です。オブザーバブルのレベルで、エラー ステータス コードに対応する方法があります。

ありがとうございました

0 投票する
1 に答える
207 参照

swift - POST の前に OAuthSwift からヘッダーを削除する

OAuthSwiftを取り、AlamoFireにプラグインするSessionManagerを追加するOAuthSwiftAlamofireを使用しています。その上、通話には Moya を使用しています。OAuthSwiftが注入していることを除いて、すべて正常に動作します

これにより、Twitter API が返されます。

endpointClosure「Content-Type」ヘッダーを nil に設定するようにMoya を変更しましたが、それは実現しませんでした。

Moya->Alamofire->OAuthSwiftAlamofire->OAuthSwift を使用してリクエストが送信される前に、このヘッダーを消去する方法を知っている人はいますか?

0 投票する
1 に答える
171 参照

ios - すべてのエンドポイントが 1 つの正確なエンドポイントを待機するようにする

Moyaを使用して HTTP 操作を処理していますが、通常はrefreshToken(). リクエストが発生しようとしているときにトークンの有効期限が切れているかどうかを確認していますが、複数のリクエストが発生する可能性があるという問題があります。ネストされた型でチェーンされている場合は問題ありませんが、常にそうであるとは限りません。

より明確にするために、 と があり、それらが別々の操作を実行し、いつでもトリガーできるrequest1()request2()仮定します (たとえば、1 つは で呼び出されviewDidLoad()、もう 1 つは別の で呼び出されますviewDidLoad())。これが発生し、トークンの有効期限が切れている場合、更新リクエストは失敗します。(statusCode: 400)それで、私の質問は、どうすればプロバイダーにrefresh()操作が完了するのを待つようにさせることができますか?つまり、プロバイダーは他のエンドポイントです。refresh()エンドポイントがオンになっている場合は、エンドポイントを待機させてください。

これを簡単にする方法を提案していただければ幸いです。

0 投票する
1 に答える
5979 参照

swift - タイプ '(_) の値を変換できません -> Observable' を期待される引数の型 '([_]) -> _' に

次のエラーが発生しました。

コンパイルしようとしたとき:

actualRequest のタイプですObservable<Response> CSRFTokenRequest と OAuthTokenRequest の両方のタイプですObservable<String?>

OAuthTokenRequestの前にCSRFTokenRequestを実行してから、実際のリクエストを実行しようとしています。

以下は問題を解決します...しかし、これが正しい方法であるかどうかはわかりません...

ありがとう!

0 投票する
1 に答える
1116 参照

swift - Rxswift + モヤ + レルム

さて、最初に私の目標を説明しましょう。Moya からアイテムを取得し、レルム オブジェクトを使用してアイテムを適切にマップし、将来それらを保存するための構造を構築しようとしています。反応性を関連付けるために、rxswift を使用してすべてのことを行う必要があります。

ここに私の2つのクラスがあります:

そして、これが私のデータを取得して解析するためのサンプル構造体です。これは RxMoya によって提供された例です。ただし、ObjectMapper を使用するためにmapObjectOptionnalメソッドを使用することはできません。代わりにモデルを ModelMapper に切り替えようとしましたが、配列を List に変換する方法が見つかりませんでした。またmapObjectOptionnal、mapArray、mapObject などの代替を見つけようとしましたが、何らかの理由で、作成後に直接それらを使用することはできませんリクエスト。

私の研究を進めるための助けをいただければ幸いです!! ありがとう。

0 投票する
1 に答える
2879 参照

swift - 実行ループ内からのみ通知ブロックを追加できます

コードのこの部分でクラッシュが発生しました:

問題は、私がMainScheduler.instancerxRealm を監視していないことだと思いますmain threadが、私はそれを望んでいません。それを修正することは可能ですか?

fetchTrainRx :