我对使用 API 很陌生,所以如果这真的很琐碎,请原谅我。
我想使用两个 GET 请求:
/workflow/search
将允许我获得完整的工作流列表及其数据(即工作流 ID)。/workflow/{workflowId}
将允许我获得具有更多详细信息的特定工作流程。
我目前importedWorkflows
在我的数据函数中,其中填充了我从/workflow/search
调用中获得的内容。如果我想了解有关工作流程的更多信息,那么我想致电/workflow/{workflowId}
.
然而,这真的很困难,尤其是因为我使用 Jquery 来获取 JSON 数据。
$.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 调用,请告诉我知道!
谢谢!