私のイオン性アプリ私はデータサービスを使用してデータを取得します。時々、サービスからの角度/イオンポストで 'ヌル'を受け取る - httpコールを繰り返す方法?
ウェブビュー(ionic serve)では、通話は常に良好です。しかし、iosデバイスでテストすると、時にはnullデータが返されます(エラーコールバックからの応答)。
なぜこのようなことが起こっているのかわかりませんが、データが返されます。もう一度クリックすると、データが受信されます。それは10回のうち1回起こります。だから私がしたいことは、データが受信されるまで呼び出しを繰り返すことですが、私はこのための最善の方法を知っていません。ここに私のコード
は状態解決である:
ためのサービスで resolve: {
getNewOrders: function (OrderService) {
//get new orders
OrderService.setNewOrders();
}
}
:
this.setNewOrders = function() {
$ionicLoading.show({ template: '<ion-spinner icon="ios"></ion-spinner><p style="margin: 5px 0 0 0;">Getting new orders..</p>'});
newOrders = false;
return $http({
url: api_url + "/get-new-orders",
method: 'POST',
headers: {'Content-Type': 'application/json; charset=UTF-8'}
}).then(function(response) {
if (response.data.status == 'success') {
if (response.data.returnData.length > 0) {
newOrders = response.data.returnData;
}
}
if (response.status == 'error' || response.status == 'tokenerror') {
AppService.error(response.status, response.errorMessages);
}
$ionicLoading.hide();
return response.data;
},
function(response) { // Error callback
//alert('ERROR - RELOAD DATA '+response);
console.log('ERROR - RELOAD DATA '+response);
setNewOrders(); //<<HERE I WANT TO REPEAT THIS FUNCTION IF NULL DATA IS RECEIVED
$ionicLoading.hide();
});
}
ので、エラーコールバックに、私は、データを取得するためにHTTP呼び出しをリロードします。
なぜnullが返されるのかわかりませんが、呼び出しを繰り返すとデータが再び取得されることはわかりません。だから私はちょうど私がちょうど受信されたユニットのデータを受信することをやり直すのは難しい。
は、しかし、私はあなたがあなたのアプリケーションをクラッシュに終わるかもしれないとして、再帰呼び出しを行うことをお勧めされていないこの
setNewOrders();エラーコールバックを受け取ったときに実行されない – rZaaaa
(response.data.returnData.length <1){ if(count <5) setNewOrders(count + 1); } –