我在 Javascript 中有 2 個異步函式。一個呼叫 MVC 控制器來加載一個“展示位置”表,另一個洗掉一個單獨的展示位置。這個想法是單擊一個按鈕以將展示位置加載到模態彈出視窗中,然后每一行都有一個洗掉單個展示位置的洗掉按鈕,然后在洗掉函式之后呼叫相同的 editPlacementHeader 函式以重新打開模態并顯示再次表。
問題是當我單擊按鈕以顯示展示位置時,在控制臺中出現以下錯誤 -
未捕獲的 SyntaxError:await 僅在異步函式、異步生成器和模塊中有效
據我所知,該功能是異步的。
如果我從 JS 代碼中洗掉所有異步和等待,則模式加載,一天被洗掉但模式不會關閉并重新打開,除非我在 C# 代碼上放置一個斷點,將資料加載到“暫停”然后它會作業。
JS代碼 -
async function editPlacementHeader(id) {
let e = $.Event();
e.preventDefault();
$("#EditPlacementHeaderPopup").modal("hide");
$("#EditPlacementPopup").modal("hide");
await $.ajax({
url: '/WeeklyPlacement/EditPlacementHeader?bookingId=' id,
type: 'POST',
dataType: 'html',
contentType: "application/json; charset=utf-8",
success: function(response) {
$("#dvEditPlacementHeaderPartial").html(response);
$("#EditPlacementHeaderPopup").modal("show");
}
});
};
async function deleteDay(id, bookingId) {
let e = $.Event();
e.preventDefault();
$.ajax({
url: '/WeeklyPlacement/DeletePlacementDay?id=' id,
type: 'POST',
dataType: 'html',
contentType: "application/json; charset=utf-8",
success: function(response) {
$("#EditPlacementHeaderPopup").modal("hide");
$("#EditPlacementPopup").modal("hide");
toastNotifySuccess("Day deleted successfully", 1000);
await editPlacementHeader(bookingId);
}
});
};
打開展示位置的 HTML -
@mon.Name
uj5u.com熱心網友回復:
您的成功回呼中有一個匿名函式,它不是異步的,而是在其中使用 await 。在呼叫 editPlacementHeader 之前洗掉“等待”或使您的成功回呼異步,它應該可以作業。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/483343.html
