异步 Javascript 函数不是 运行
async Javascript functions not running
我在 Javascript 中有 2 个异步函数。一个调用 MVC 控制器加载 table 个“展示位置”,另一个删除单个展示位置。这个想法是点击一个按钮将展示位置加载到模态弹出窗口中,然后每一行都有一个删除按钮来删除单个展示位置,然后在删除函数之后调用相同的 editPlacementHeader 函数以重新打开模态并显示再次table。
问题是当我点击按钮显示展示位置时,在控制台中出现以下错误 -
Uncaught SyntaxError: await is only valid in async functions, async generators and modules
据我所知,该函数是异步的。
如果我从 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
您的成功回调中有一个匿名函数,它不是异步的,但在其中使用了 await。在调用 editPlacementHeader 之前删除“await”或使您的成功回调异步,它应该可以工作。
我在 Javascript 中有 2 个异步函数。一个调用 MVC 控制器加载 table 个“展示位置”,另一个删除单个展示位置。这个想法是点击一个按钮将展示位置加载到模态弹出窗口中,然后每一行都有一个删除按钮来删除单个展示位置,然后在删除函数之后调用相同的 editPlacementHeader 函数以重新打开模态并显示再次table。
问题是当我点击按钮显示展示位置时,在控制台中出现以下错误 -
Uncaught SyntaxError: await is only valid in async functions, async generators and modules
据我所知,该函数是异步的。
如果我从 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
您的成功回调中有一个匿名函数,它不是异步的,但在其中使用了 await。在调用 editPlacementHeader 之前删除“await”或使您的成功回调异步,它应该可以工作。