Вызов this.callParent(arguments) в асинхронных методах

Бывает ситуация когда нужно вызвать родительский метод в асинхронной функции и простой операция не работает:

// метод используется в прокси

/**
 * Переопределен. Вызывается при завершении синхронизации
 */
onBatchComplete: function (batch, operation) {
    var me = this;
    setTimeout(function () {
        me.callParent(arguments);
    }, 1000);
}

Данную особенность можно обойти так:

/**
 * Переопределен. Вызывается при завершении синхронизации
 */
onBatchComplete: function (batch, operation) {
    var me = this;
    setTimeout(function () {
        me.self.superclass.onBatchComplete.call(me, batch, operation);
    }, 1000);
}

Примечание. Аргументы нужно передавать отдельно, если сделать через arguments, то не получится

Print Friendly, PDF & Email

Добавить комментарий