私のangular 4.3.2コードは、戻るのに2〜4分かかるバックエンドサービスを呼び出しています。デフォルトの_this.http.get
_コードだけを使用すると、デフォルトのタイムアウトが発生します。 2分後ですが、2分を超えるタイムアウトを設定しようとすると、タイムアウトが2分を超えることはありません。
私は100、100000(1.7m)、114000(1.9m)を試してみましたが、これらはこれらの値でタイムアウトするという点で機能します。しかし、126000(2.1m)、180000(3m)、1800000(30m)を試すと、2分後にタイムアウトになることがわかります。
_this.http.get('myUrl')
.timeout(126000)
.map((res: Response) => this.convertResponse(res));
_
.timeoutWith(126000, Observable.throw(new Error("Timed out")))
でも試してみましたが、役に立ちませんでした。
ブラウザのネットワークタイムアウトの問題はないと思います。jQuery.ajax()を使用すると、バックエンドからHTTPヘッダーや部分的なボディを送信することなく、はるかに長いリクエストを作成でき、リクエストは維持されます。
コメントであなたから返事はもらえませんでしたが、開発マシンでこの問題が発生していました。 proxy config を使用しており、プロキシのデフォルトのタイムアウトは120秒(2分)です。その場合は、構成でより高い値を定義する必要があります。
{
"/api": {
"target": "http://localhost:3000",
"secure": false,
"timeout": 360000
}
}
しかし、私は@Reactgularに同意します。ほとんどの場合、HTTPリクエストはすぐに返ってくるはずです。