SweetAlert2:配置警报的一些困难

SweetAlert2 : Some difficults to configure my alert

我正在尝试使用 sweetAlert2。 https://sweetalert2.github.io/

方案如下:

1) 显示主要警报

2) 如果他点击"Cancel",我正常关闭警报。

3) 如果他点击"OK",那么按钮会转到加载位置,但是alert不会关闭。与此同时,我提出了 Ajax 请求。当它结束时,只有这样我才能关闭第一个警报并查看第二个警报。

4) 当我在第二个警报上单击 "OK" 时,页面会重新加载。

但目前我无法很好地管理如何在单击“确定”和“取消”时显示警报。

我有以下代码:

                Swal.fire({
                    title: 'Change to '+planName,
                    text: message,
                    icon: "info",
                    showCancelButton: true,
                    showLoaderOnConfirm: true,
                    preConfirm: function () {
                        // todo - actually change the plan!
                        $.ajax({
                            url: changeUrl,
                            method: 'POST'
                        }).done(function(){
                            Swal.fire({
                                title: 'Plan changed !',
                                icon: 'success',

                            },function() {
                                location.reload();
                            })
                        });
                    }
                });

当我在第一个警报上单击“取消”时,一切正常。 但是,如果我单击“确定”,我会看到确认按钮进入 "loader",但警报会直接关闭。然后发出我的 Ajax 请求,然后显示第二个警报。

有人能帮帮我吗?

编辑:当前代码:

                Swal.fire({
                    title: 'Change to '+planName,
                    text: message,
                    icon: "info",
                    showCancelButton: true,
                    showLoaderOnConfirm: true,
                    preConfirm: function () {
                        // todo - actually change the plan!
                        return $.ajax({
                            url: changeUrl,
                            method: 'POST'
                        }).done(function(){
                            Swal.fire({
                                title: 'Plan changed !',
                                icon: 'success',

                            },function() {
                                location.reload();
                            })
                        });
                    }
                });

这样做怎么样

Swal.fire({
  title: 'Change to '+planName,
  text: message,
  icon: "info",
  showCancelButton: true,
  showLoaderOnConfirm: true,
  preConfirm: function () {
    // todo - actually change the plan!
    return $.ajax({
      url: changeUrl,
      method: 'POST'
    }).done(function(){
      Swal.fire({
        title: 'Plan changed !',
        icon: 'success',

      },function() {
        location.reload();
      })
    });
  }
});

这是一个具有类似实现的沙箱 https://codesandbox.io/s/muddy-smoke-5gwf0