Javascript SweetAlert2:真的没有办法在点击按钮之前停止JS代码吗?

Javascript SweetAlert2:真的没有办法在点击按钮之前停止JS代码吗?,javascript,asp.net-core,sweetalert2,Javascript,Asp.net Core,Sweetalert2,在Swal Github被建议向SweetAlert2提出问题,因此我在这里发布 在我(asp.net core)应用程序中的保存按钮后面,我检查了一些东西,在某些情况下,我必须询问用户(是/否),并且根据他的选择,必须在存储之前覆盖一些数据 如果我使用(jQuery)警报或确认,代码将停止,直到用户单击按钮。 在Swal中,我没有找到任何方法(包括“.then”(“)停止代码,直到用户单击按钮。 将显示消息,但代码将进一步运行 是否真的不可以使用Swal停止代码…? =>如果有办法,怎么做…?

在Swal Github被建议向SweetAlert2提出问题,因此我在这里发布

在我(asp.net core)应用程序中的保存按钮后面,我检查了一些东西,在某些情况下,我必须询问用户(是/否),并且根据他的选择,必须在存储之前覆盖一些数据

如果我使用(jQuery)警报或确认,代码将停止,直到用户单击按钮。
在Swal中,我没有找到任何方法(包括“.then”(“)停止代码,直到用户单击按钮。
将显示消息,但代码将进一步运行

是否真的可以使用Swal停止代码…?
=>如果有办法,怎么做…?


谢谢

它支持回调,对吗?下面是我在中找到的一些代码


您可以根据result.value继续执行,因为现在确实有办法停止JS代码,直到用户完成他选择的
所以..我不得不改变我的逻辑。
之前的逻辑:

要检查某项内容(1),请显示一个swal(例如,将焦点设置为控件),然后以代码方式返回(返回原因)。
这样,消息就会显示(直到用户关闭它),数据不会被存储。
要在swal中询问用户一些问题(您真的想…),然后在存储日期之前根据用户的回答做一些事情,不要工作,因为JS代码在用户做出选择之前不会停止。
会显示排水沟,但数据会立即保存(3)
(此处无需等待)

为了达到我所需要的,我必须改变逻辑。
新逻辑

我必须将检查逻辑与保存分离:
支票未更改(1)

在单独的函数(SaveData())中移动数据的保存(3)
给出swal(2),然后从swal函数调用SaveData()(3)

我的swal代码:

  if ((AvatarHochgeladen) && (!(AvatarUebernommen))) {
  swal.fire({
    title: '! Achtung !',
    html: 'Sie haben eine eigene Grafik hochgeladen, diese aber nicht mit dem Button "Ihren upload übernehmen" als aktuellen Avatar übernommen. <br> Wenn Sie die Daten so speichern, geht Ihr hochgeladener Avatar verloren. <br> Wollen Sie Ihre hochgeladene Grafik als Avatar speichern?',
    icon: 'question',
    showCancelButton: true,
    confirmButtonColor: 'blue',
    cancelButtonText: 'Nein',
    confirmButtonText: 'Ja',
  }).then((result) => {
    if (result.value) {
      AvatarSpeichern = AvatarBase64;
      SaveUserdata();
    }
    else { SaveUserdata(); }
  })
  }
if((AvatarHochgeladen)和(!(AvatarUebernommen))){
喷火({
标题:“!阿彻东!”,
html:“你是格拉菲克·霍奇莱登,我没有按“上传”按钮,我是阿卡图埃伦·阿瓦塔鲁·伯诺门。
你是阿瓦塔鲁·伯诺门,我是霍奇莱登·阿瓦塔鲁·维洛伦。
你是霍奇莱登·格拉菲克·阿瓦塔鲁·斯佩切恩吗?”, 图标:“问题”, showCancelButton:true, confirmButtonColor:'蓝色', cancelButtonText:'不', confirmButtonText:“Ja”, })。然后((结果)=>{ if(result.value){ Avatarspeichen=AvatarBase64; SaveUserdata(); } else{SaveUserdata();} }) }
因此..如果用户选择“是”,我将替换一个变量并调用SaveData(),如果用户选择“否”,我将直接调用SaveData()。
我的结论:

由于swal是“非阻塞”(不要停止运行JS脚本),我们必须从swal内部分离逻辑并调用(根据用户选择)代码。

感谢您的发帖,但这不会停止JS代码(我已经尝试过这个(以及我发现的其他示例代码)。我认为,这是不可能的,我必须添加进一步的功能(拆分代码)然后再保存数据。
  if ((AvatarHochgeladen) && (!(AvatarUebernommen))) {
  swal.fire({
    title: '! Achtung !',
    html: 'Sie haben eine eigene Grafik hochgeladen, diese aber nicht mit dem Button "Ihren upload übernehmen" als aktuellen Avatar übernommen. <br> Wenn Sie die Daten so speichern, geht Ihr hochgeladener Avatar verloren. <br> Wollen Sie Ihre hochgeladene Grafik als Avatar speichern?',
    icon: 'question',
    showCancelButton: true,
    confirmButtonColor: 'blue',
    cancelButtonText: 'Nein',
    confirmButtonText: 'Ja',
  }).then((result) => {
    if (result.value) {
      AvatarSpeichern = AvatarBase64;
      SaveUserdata();
    }
    else { SaveUserdata(); }
  })
  }