使用async/await关键字将按钮处理程序函数异步化,然后在点击事件处理程序中使用await来等待模态对话框的关闭。示例代码如下:
async function handleButtonClick() {
// 异步化按钮处理程序函数
await someAsyncOperation();
// 打开模态对话框
openModal();
// 等待模态对话框关闭
await waitForModalClose();
// 继续执行其它任务
doOtherStuff();
}
function waitForModalClose() {
return new Promise(resolve => {
$('#myModal').on('hidden.bs.modal', () => {
resolve();
});
});
}
function openModal() {
$('#myModal').modal('show');
}
在上述代码中,handleButtonClick函数使用async关键字标记为异步函数。在执行按钮处理程序函数的其它任务后,它打开模态对话框并等待该对话框的关闭。waitForModalClose函数返回一个Promise对象,它在模态对话框关闭时被解决(resolve)。直到该Promise被解决前,按钮处理程序函数会在此处挂起(wait)。