【发布时间】:2020-08-06 18:01:08
【问题描述】:
做一个任务,我被卡住了。我的代码没有完全通过。我相信等待,异步的东西有问题。
我的问题:在@foreach 方法中,我调用了一个方法“loadEach”,它检查当前订单行是否必须为橙色。但问题是,在 loadEach 方法的中间(在工作 api 调用之后)它会立即被另一个 order.Id 值再次调用,并且 loadEach 方法永远不会完全通过。我该怎么办,那个 blazor 会等到 loadEach 方法完全完成后再去建表?
@foreach (var order in sortedOrders)
{
loadEach(order.Id).ConfigureAwait(true);
<tr style="background-color:@(hasPausedOperation == true ? "#ebc14d" : "")" @onclick="@(() => Selected(order.Id))">
@*<td @onclick="@(() => Selected(order.Id))">@order.WorkCenterValue</td>*@
<td>@order.OrderNumber</td>
<td>@order.Customer</td>
<td>@order.ExpectedStartDateTime?.ToString("yyyy-MM-dd")</td>
<td>@order.EndDateTime?.ToString("yyyy-MM-dd")</td>
<td>@order.ExternalWorker</td>
@*<td @onclick="@(() => Selected(order.Id))">@order.Priority</td>*@
</tr>
@if (orderId != null && orderId == order.Id)
{
<tr>
<td colspan="5">
<Logging orderId="order.Id" workCenter="workCenter"></Logging>
</td>
</tr>
}
hasPausedOperation = false;
}
protected async Task loadEach(int orderId)
{
if (orderId != 0)
{
works = await Http.GetFromJsonAsync<WorksListModel>($"Works?orderId={orderId}");
foreach (var work in works.Works)
{
if ((work.EndDateTime == null && work.StartDateTime != null && canStart && work.WorkLogEndDateTime != null))
{
hasPausedOperation = true;
}
}
}
}
【问题讨论】:
-
那2个razor sn-ps有什么区别吗?解释或删除一个。
-
我在页面末尾发布了整个 loadeach 方法。或者我需要发布更多我不知道的内容?
-
我现在修复了这个帖子。也许现在更干净了