Я новичок в ExtJs, и я изо всех сил пытаюсь понять, как использовать функции обратного вызова в ExtJs. Версия ExtJs я использую 4.2.1 В основном я хочу цепи выполнение 2-х функций:Функции обратного вызова ExtJS Пример
func1: функция() {}
func2: функция() {}
, так что func2() запускается только после завершения func1().
Из того, что я прочитал до сих пор, мне нужно использовать функцию обратного вызова, но для жизни я не могу ее получить.
Вот мой код:
filter: function (filters, value) {
if (Ext.isString(filters)) {
filters = {
property: filters,
value: value
};
}
var me = this,
decoded = me.decodeFilters(filters),
i = 0,
length = decoded.length;
for (; i < length; i++) {
me.filters.replace(decoded[i]);
}
Ext.Array.each(me.filters.items, function (filter) {
Ext.Object.each(me.tree.nodeHash, function (key, node) {
if (filter.filterFn) {
if (!filter.filterFn(node)) node.remove();
} else {
if (node.data[filter.property] != filter.value) node.remove();
}
});
});
me.hasFilter = true;
console.log(me);
},
clearFilter: function() {
var me = this;
me.filters.clear();
me.hasFilter = false;
me.load();
},
isFiltered: function() {
return this.hasFilter;
},
filterNavAdminSTByUserName: function (nameValue) {
this.clearFilter();
this.filter([{
property: 'userName',
value: nameValue
}]);
}
Моя проблема заключается в том, что this.filter() получает выполняется перед this.clearFilter(); Как принудительно выполнить this.filter() только после этого. ClearArlter() завершает?
Заранее благодарен!
Ваш вопрос немного расплывчатый. Является ли 'func1' асинхронным методом? –
Вы не можете настроить метод как асинхронный. Я спрашиваю, делает ли 'func1' все, что асинхронно? Как правило, запрос ajax. –
Я не знал, что вы можете установить метод асинхронный в ExtJs 4.2.1. Из того, что я знаю (ограниченные знания, как вы можете догадаться), все методы по умолчанию являются асинхронными. Как я могу это установить? И func1 & func2 должны быть синхронизированы? Или просто func1? – eb15