Я только что начал использовать js-модули с узлом, потребовать и прорежировать и пытаться заставить код работать, который изначально был в одном скрипте.Применить PromiseJS к этой ситуации
Я также хотел бы начать использовать promjs, но не уверен, как применить его в этой ситуации.
Все требуемые части браузера, похоже, работают, поэтому я просто оставлю все неиспользуемые биты для простоты.
В одном модуле у меня есть что-то вроде этого
module.exports.api = function(){
var getCurrentProcessInstanceTask = function getCurrentProcessInstanceTask(options) {
if (!currentProcess || !currentProcess.id) {
throw new Error("no currentProcess is set, cannot get active task");
return;
}
var processInstanceId = currentProcess.id;
jQuery.get(hostUrl + "service/runtime/tasks", {
processInstanceId: processInstanceId
})
.done(function(data) {
console.log("response: " + JSON.stringify(data, null, 2));
currentProcess.tasks = data.data;
if (options && options.callback) {
options.callback(data.data);
}
});
}
return {
getCurrentProcessInstanceTask: getCurrentProcessInstanceTask
}
}
Тогда в другом модуле у меня есть что-то вроде этого
var Api = require('./api');
module.exports.view = function(){
var api = Api();
var setupEmbeddedView = function setupEmbeddedView(url, tmpl) {
tmpls.renderExtTemplate({
name: tmpl,
selector: targetDiv,
data: {
url: url,
width: iframeTargetDiv.width(),
height: iframeTargetDiv.height()
},
callback: function() {
jQuery('#taskFormFrame').load(function(e) {
console.log("taskFormFrame load fired!");
});
}
});
},
showCurrentTaskForm = function showCurrentTaskForm() {
console.log("mark");
api.getCurrentProcessInstanceTask({
callback: function(tasks) {
setupEmbeddedView(getTaskFormUrl(tasks), 'showTaskForm');
}
});
}
return {
showCurrentTaskForm: showCurrentTaskForm
}
}
вызывающего showCurrentTaskForm в другом модуле, где представление необходимых результатов в апи .getCurrentProcessInstanceTask выполняется, но setupEmbeddedView никогда не вызывает вызов.
Я очень смущен, почему, может быть, кто-то может объяснить.
Также я хотел бы пример того, как я бы применить promisejs в данном конкретном случае, вместо того чтобы использовать обратные вызовы функций цепи