Я создаю автономный режим для своего приложения, и мне нужно переопределить функцию синхронизации в моих магазинах. Однако, когда я делаю это, магазин больше не синхронизируется, даже когда я вызываю this.callParent(arguments)
.
Вот переопределенная функция:
sync: function(){
if(appOnline){
console.log('App is online');
this.callParent(arguments);
}
else{
console.log('App is offline');
var found = false;
for(var i = 0; i < storeSyncList.length; i++){
if(storeSyncList[i] === this){
found = true;
break;
}
}
if(!found)
storeSyncList.push(this);
}
}
Почему this.callParent(arguments)
не работает? Когда приложение подключается к сети, функция вызывается следующим образом:
storeSyncList[i].sync.call(storeSyncList[i],{
scope: this,
callback: function(records, operation, success){
console.log('test1');
console.log('successful sync: '(success ? 'Yes' : 'No'));
}
});
Как видно по звонку, я прохожу в магазине как this
часть sync.call()
. storeSyncList[i]
— это текущий магазин, который синхронизируется, когда приложение снова подключается к сети.
Кто-нибудь знает, почему this.callParent(arguments)
не выполняет синхронизацию, когда this
является магазином? Я знаю, что это не так. Когда я смотрю на базу данных, она не обновляется, и функция callback
никогда не вызывается. Однако я точно знаю, что он работает на линии sync.call
. Что тут происходит?
ОБНОВЛЕНИЕ: после построчной отладки вызов this.callParent(arguments)
пропускается. Я не могу войти в функцию, и она никогда не запускается, программа просто проходит по ней, как будто ее там нет, и идет в конец функции. Очень странно. Кто-нибудь знает, почему?
РЕДАКТИРОВАТЬ: Синхронизация Pastebin всего класса http://pastebin.com/WMZTh5PR находится внизу.