javascript - 在同一时间发生的两个事件上出错
问题描述
我有 activiti Bpmn 文件,因为有任务转换。在过渡期间,我需要为该新任务创建截止日期。我的问题是截止日期和新任务同时发生。因为那我得到了错误。
onClose: function (date) {
if (valid) {
date = Date.parse(date);
if (oldDate !== date) {
var tasks = getSet(context, 'task') || getSet(context, 'tasks'),
trans = Ember.get(context, 'transition') || Ember.get(context, 'propertyMap.transition'),
requestData = [];
if (!tasks.length) {
resolve();
return;
}
if (!trans) {
trans = 'Done';
}
tasks.forEach(function (task) {
requestData.push({ name: 'id', value: (Ember.get(task, 'id') || Ember.get(task, 'currentTask.id') )});
requestData.push({ name: 'transition', value: trans || '' });
});
if (context.get('serviceParams')) {
Object.asAjaxData(context.get('serviceParams')).forEach(function (param) {
requestData.push(param);
});
}
return (Core.services({
type: 'post',
service: 'workflow/task/transition',
data: requestData,
json: true
})
.done(function (res) {
Core.Action('Core:updateTask', context, { dtDue: date });
Core.model.ingestResources(res);
var inspected = Core.controller.detailsObject,
wf = res.workflows || {};
if (inspected) {
Object.keys(wf).forEach(function (w) {
var hist = wf[w].historicalTaskIds;
if (hist.contains(inspected.currentTaskId)) {
inspected.set('currentTaskId', wf[w].openTaskIds[0]);
}
});
}
resolve();
})
.fail(function (xhr, status, error) {
Core.Error.show(error);
})
.always(function () {
tasks.forEach(function (task) {
if (Ember.get(task, 'isClip')) {
Core.model.clip.clear();
}
});
var wfController = Core.Tab.Workflow.getController();
var sel = wfController.get('selection');
wfController.reloadResultSet();
var rs = wfController.get('resultSet');
rs && rs.done(function () {
var s = Ember.Set.create();
rs.get('content').forEach(function (item) {
if (!item) { return; }
s.addObject(item);
});
sel.forEach(function (item) {
if (!s.contains(item)) {
sel.remove(item);
}
});
});
sel.clear();
resolve(tasks);
})
);
}
}
}
用于Core.Action('Core:updateTask', context, { dtDue: date });
更新到期日期。如果我在顶部If
声明中使用到期日期已更新,但没有发生过渡。如果我在done
函数上使用,则会发生转换并移动到新的任务 ID。因此,它搜索任务 ID 并显示错误。请为此提供建议。我需要创建转换并同时更新日期。
解决方案
推荐阅读
- ios - 当我加载我的应用程序时,IOS 模拟器是黑色的
- c++ - 将映射键(字符串)与向量中的字母进行比较
- python - Pandas - 带有每月翻转、星期掩码和假期列表的日期范围
- c++ - OpenCV - 如何将长曲线拟合到短曲线?
- c99 - IAR 编译器 C 方言设置为 C99 以访问“dlib”但仍在访问“clib”
- sql - SQL初学者试图在表上插入数据
- ms-access - 通过宏发送电子邮件并绕过安全设置
- c# - Rotativa形成内联Bootstrap 4
- sql - 通过 VBA 将 Excel 范围推送到 SQL 表
- ios - SwiftUI 按钮图像显示为黑色