0
this answer現在、リクエストが成功しなかったのにタイムアウトしてもデータを返すサービスを作成しようとしています。anglejsのデータを返すタイムアウトハンドラー
this.getStatus = function()
{
var timeoutPromise = $timeout(function() {
canceler.resolve();
console.log("Timed out");
},250);
var canceler = $q.defer();
$http.get("data.js", {timeout: canceler.promise}).success(function(data){
console.log(data);
$timeout.cancel(timeoutPromise);
return data;
});
};
これは、リクエストがタイムアウトした場合や、いくつかのプレースホルダのデータに成功した場合$http
要求にサービスを
それは応答のいずれかからデータを返す必要があり
var promises = [
firstService.getStatus(),
secondService.getStatus(),
thirdService.getStatus()
];
$q.all(promises)
.then(function (serviceResults) {
//process Data in case of success
console.log("Result First Service: "+ serviceResults[0]);
console.log("Result Second Service: "+ serviceResults[1]);
console.log("Result third Service: "+ serviceResults[2]);
})
.catch(function() {
//process Mock data in case of Failure
});
と呼ばれる方法です。
リクエストがタイムアウトするとデータを返すことはできますか?
リクエストを実行中に特定の時間にデータが届いたときに、そのデータを表示したいのはなぜですか?データがあなたのタイムアウトよりも時間がかかったり、時間がかかったりするとどうなりますか? 'catch'を使ってリクエストが失敗したかどうかを知ることができます。' .catch(function(response){}) 'はそれを処理したり、リクエストが失敗したと見なしたりします。 – MrNew