Я новичок в использовании API, поэтому, пожалуйста, простите меня, если это действительно тривиально.
Есть два запроса GET, которые я хочу использовать:
/workflow/search
позволит мне получить полный список рабочих процессов вместе с их данными (т.е. идентификатором рабочего процесса). /workflow/{workflowId}
позволит мне получить конкретный c рабочий процесс с более подробной информацией.
Сейчас у меня есть importedWorkflows
в моей функции данных, которая заполняется тем, что я получаю от вызова /workflow/search
. Если я хочу узнать больше о рабочем процессе, я бы хотел позвонить по номеру /workflow/{workflowId}
.
Однако это было действительно сложно, особенно потому, что я использую Jquery, чтобы получить JSON data.
$.getJSON(dataURL, function(data) {
self.importedWorkflows = data.results;
});
Поскольку все это асинхронно, мне действительно нужен доступ к информации, найденной с помощью /workflow/{workflowId}
, когда она будет готова.
Это была моя попытка сделать это: у меня есть вычисляемый массив с именем importedWorkflowDefinitions
, который обрабатывает все рабочие процессы, найденные с помощью /workflow/search
, и вызывает вызов /workflow/{workflowId}
для каждого рабочего процесса. Я сохраняю возвращенные JSON данные для каждого вызова в вычисленном массиве. Затем я использую метод под названием generateWorkflowById()
для поиска рабочего процесса JSON в importedWorkflowDefinitions
.
Однако ...
в моем приложении Vue , У меня есть таблица, созданная с помощью директивы v-for.
<tbody v-for="workflow in workflowsOnPage">
<tr class="expandable-row" :id="workflow.workflowId">
<td>{{ generateWorkflowById(workflow.workflowId).workflowName }}</td>
<td>{{ workflow.workflowId }}</td>
<td>{{ workflow.status }}</td>
<td class="text-align-right">{{ workflow.startTime }}</td>
<td class="text-align-right">{{ workflow.endTime }}</td>
...
Примечание: workflowsOnPage
- это вычисленный массив JSON, который делит importedWorkflows
.
Итак, по сути, произошло то, что таблица будет отображаться без значения generateWorkflowById(workflow.workflowId).workflowName
, потому что первый вызов /workflow/search
не был завершен. Кроме того, даже несмотря на то, что workflowDefinitions
вычисляется и изменится после вызова /workflow/search
, таблица уже завершила рендеринг и больше не будет запускать метод generateWorkflowById(..)
.
Есть ли способ отображать информацию, найденную с помощью вызова /workflow/{workflowId}
, в таблицу без этой гонки, происходящей со всеми моими данными?
Кстати, я работаю с Netflix Conductor, поэтому, если есть более качественные вызовы API или другой способ иметь доступ ко всем деталям, относящимся к рабочему процессу, поэтому мне не нужно выполнять эти зависимые вызовы API, пожалуйста, дайте мне знать!
Спасибо!