2016-08-10 8 views
0

応答が応答するのに時間がかかり過ぎると、どのようにタイムアウトを追加しますか?私は私のコントローラで次があります。[AngularJS]:httpでタイムアウト遅延を追加します。

私はタイムアウト/遅延などがない
getShopStatus: function(shop) { 
    var me = this; 
    var sUrl = String(shop); 
    var req = { 
    method: 'GET', 
    url: sUrl 
    }; 

    return $http(req); 
}, 

:私の工場で

$payments.getShopStatus(data.siteUrl) 
    .success(function(rdata, response) { 
    // go to next step 
    }) 
    .error(function(rdata, response) { 
    // tell me something's wrong 
    // go here if there is a three-second delay too 
    }); 

を、私は上記のものを処理するために、シンプルなHTTPリターンを持っていますか?応答がないのに3秒遅れると強制的に失敗する必要があります。

+0

アプリの設定機能でタイムアウトを追加できます。 $ httpProvider.defaults.timeout = 3000; – sameer

+0

これは私の機能のどこに行くのですか? – ralphcarlo

答えて

0

以下のようなメインモジュールのapp config機能の中に、グローバルタイムアウト設定を入れることができます。

または個別の呼び出しでは、以下のように$ httpコールでパラメータとしてタイムアウトを渡す必要があります。

getShopStatus: function(shop) { 
    var me = this; 
    var sUrl = String(shop);  

    return $http.get(sUrl, {timeout: 5000}); 
}, 
+1

$ httpリクエストで{timeout:5000}を追加しようとしましたが、5秒後に停止しませんでした。明らかにうまくいかないようです。 – ralphcarlo

+0

私は小さな微調整を行いました。上記の前の実装ではなく 'req'に' timeout'パラメータを設定しました。出来た。 – ralphcarlo

関連する問題