Добрый день.
Заместил схемку LeadAccountProfileSchema - вызываю метод FindSimilar при получение сообщения от карточки лида. В методе реализован Terrasoft.chain, чтобы убрать ассинхронность запроса в initSimilarEntityRecordsCollection. Но в chain почему-отрабатывает только первая функция, а onSimilarButtonClick не работает. Почему?
define("LeadAccountProfileSchema", ["LeadAccountProfileSchemaResources", "LeadSimilarEntitiesProfileSchemaUtilities"],
function(resources) {
return {
entitySchemaName: "Account",
mixins: {},
attributes: {},
messages: {
"FindSimilarAccount": {
mode: this.Terrasoft.MessageMode.PTP,
direction: this.Terrasoft.MessageDirectionType.SUBSCRIBE
}
},
methods: {
initEntity: function() {
this.callParent(arguments);
this.sandbox.subscribe("FindSimilarAccount", this.FindSimilar, this, ["123"]);
},
FindSimilar: function() {
this.Terrasoft.chain(
this.initSimilarEntityRecordsCollection,
this.onSimilarButtonClick,
this)
}
},
};
});
Нравится
Метод, находящийся в chain должен принимать и вызывать после выполнения логики callback:
initSimilarEntityRecordsCollection: function(callback, scope) {
// Logic
if (callback) {
callback.call(scope || this);
}
},
СД,
попробуйте примерно вот так через next:
Terrasoft.chain(
function (next) {
// какие-то действия
next();
},
function(next) {
// либо в callback
var config = {
isSilent: true,
callback: next
};
this.save(config, false);
}
}
СД,
Это просто пример. Вы же спросили почему у вас не выполняет вторая функция. Не выполняется, т.к. не вызывается. Вызвать можно через callback или next.
Конечно блок вызова callback-метода должен находиться в месте получения ответа от первой функции для реализации последовательного вызова.