SweetAlert2 выполняет функцию после таймера

Что я здесь делаю неправильно?

swal({
    title: "Done.",
    text: "Labels Printed.",
    timer: 1000,
    type: "success",
    showConfirmButton: false

}).then(function () {

    alert('done');

});

Оповещение не срабатывает, нужно ли как-то поймать «таймер»? (Предупреждение — это всего лишь пример, на самом деле я очищаю здесь свою форму.)

Также как мне избавиться от ошибки таймера textLabels:1 Uncaught (в обещании)?

Я использовал .done()

Может ли кто-нибудь добавить тег для SweetAlert2? У меня нет репутации, чтобы делать это.

Мик

Что мне нужно сделать, если я не хочу, чтобы что-то произошло после?:

swal({
    title: "Error.",
    text: "Authorisation Failed.",
    timer: 1000,
    type: "error",
    showConfirmButton: false
}).then(
    function() {}

 )

как это?:

}).then(
        function() {},
        function() {}
       )

person Mick    schedule 02.11.2016    source источник


Ответы (1)


ОБНОВЛЕНО (17.11.2017):

Начиная с v7.0.0 SweetAlert2 работает точно так, как ожидалось автором вопроса :)


SweetAlert2 использует промисы. Каждое обещание может быть разрешено или отклонено, и вы обрабатываете его следующим образом:

swal(…).then(
  function () {
    // handle resolve (confirm button)
  }, 
  function (dismiss) {
    // handle reject, dismiss can be  'cancel', 'overlay', 'close', and 'timer'
  }
)

Closing a modal by timer considered as a promise rejection, so you should handle it like this:

Swal.fire({
  title: 'Auto close alert!',
  text: 'I will close in 2 seconds.',
  timer: 2000
}).then(function() {
  alert('done');
})
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>

person Limon Monte    schedule 02.11.2016
comment
Круто, это работает. Я нашел этот пример запутанным и не понял, что мне нужна функция() {}. SweetAlert2 великолепен. Спасибо. - person Mick; 02.11.2016
comment
Рад, что помог вам, спасибо за использование SweetAlert2! - person Limon Monte; 02.11.2016