【发布时间】:2025-08-28 08:45:01
【问题描述】:
我对使用 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() 的方法在importedWorkflowDefinitions 中查找工作流JSON。
不过……
在我的 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 调用,请告诉我!
谢谢!
【问题讨论】:
-
使用 jQuery 进行 get 和 vue 进行渲染的任何原因。为什么不在 vue 组件内部使用 axios 来检索数据并使用箭头函数,所以
this未绑定,因此您可以使用this.importedWorkFlows填充视图组件数据
标签: javascript jquery vue.js netflix-conductor