Я использую Parse.com в качестве бэкэнд для приложения Ionic Framework, что означает, что я должен контролировать сетевую активность. Я могу работать онлайн/офлайн, используя этот guide. Тем не менее, мне нужно больше «приложений широкий» проверки решения для каждого вызова. В настоящее время я получаю сообщение об ошибке, когда нет сети, как response
от сервера null
вызывает следующую ошибку:Проверить сеть и обработать пустой объект ошибки
Error: null is not an object (evaluating 'response.error')
Мой вопрос заключается в два раза:
Можно ли создать сеть
factory
/service
, что я могу ввести в мойParseFactory
, чтобы проверить и уведомить пользователя о том, что их сети недостаточно.Handle объекта
null
отклика в этом коде:ParseFactory.provider('Programme/').get($stateParams.loadProgramme).success (function(data){ // do something with success... }).error(function(response){ $rootScope.$emit('errorEvent', {"message" : "Unable to load Programme. Please check your connection", "errorObject": response.error} ); });
Моя фабрика для вызовов разбора ниже:
.factory('ParseFactory',['$http','PARSE_CREDENTIALS',function($http,PARSE_CREDENTIALS){
var baseUrl = 'https://api.parse.com/1/classes/';
return {
provider:function(type, queryParam, queryValue) {
console.log(queryValue);
whereQuery = {}
whereQuery[queryParam] = queryValue;
var masterQuery = {'userId': masterKey};
return {
getAll:function(){
return $http.get(getUrl(type),getParams(whereQuery));
},
getMasters:function(){
return $http.get(getUrl(type),getParams(masterQuery));
},
get:function(id){
return $http.get(getUrl(type)+id,getParams());
},
create:function(data){
return $http.post(getUrl(type),data,getParams());
},
edit:function(id,data){
return $http.put(getUrl(type)+id,data,getParams());
},
delete:function(id){
return $http.delete(getUrl(type)+id,getParams());
}
}
function getUrl(type) {
return baseUrl+type;
}
function getParams(user) {
return {
timeout : 5000,
headers:{
'X-Parse-Application-Id': PARSE_CREDENTIALS.APP_ID,
'X-Parse-REST-API-Key':PARSE_CREDENTIALS.REST_API_KEY,
'X-Parse-Session-Token': Parse.User.current()._sessionToken,
'Content-Type':'application/json'
},
params: {
where: user,
// limit: 2,
// count: 1
// include: "something"
}
}
}
}
}
}])
Что касается второго аргумента 'error', он должен предоставить вам код состояния – PSL
Но статус приходит с сервера. Если нет сети для получения кода ошибки, это будет «null» – Taylorsuk