Получение ошибки при двух событиях, происходящих в одно и то же время

#javascript #jquery #delay

#javascript #jquery #задержка

Вопрос:

У меня есть файл 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 amp;amp; 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 }); используется для обновления duedate. Если я использую оператор on the top If , срок выполнения обновляется, но Transistion не происходит. Если я использую done функцию, происходит переход и переносится в новый идентификатор задачи. Из-за этого он ищет идентификатор задачи и показывает ошибку.
Пожалуйста, предоставьте мне предложение по этому поводу. Мне нужно создать оба перехода и одновременно обновить дату.

Комментарии:

1. какую библиотеку вы используете для ядра ….?

2. @ducmai Ember 1.4.0

3. можете ли вы поделиться журналами сервера?