2016-11-01 3 views
3

Я использую библиотеку sweetalert2 для отображения оповещений в моем коде.Остановить контроль, пока SweetAlert находится на экране

ConfirmationMessage = function(msg) { 
    swal({ 
      title: "", 
      text: msg, 
      type: "warning", 
      showCancelButton: true, 
      confirmButtonColor: "#DD6B55", 
      confirmButtonText: "Ok", 
      cancelButtonText: "Cancel", 
      closeOnConfirm: false, 
      closeOnCancel: false, 
      allowEscapeKey: true 

     }); 
} 

Это функция JS, и я использую ее в другом месте.

if (!ConfirmationMessage("message to show.")) { 
    alert("if");   
} 
else { 
    alert("else"); 
} 

Мой вопрос

Я хочу, чтобы остановить контроль, когда предупреждение на экране, и хотите, чтобы решить, на кнопки, если OK прийти к Если условие если Отменить приходите к еще условие, но управление не ждет ответа в sweetalert2.

ответ

3

Создание swal является asynchronous process, meaning you cannot just return a synchronous result from it.

Если вы посмотрите на docs, вы можете увидеть, что swal возвращает promise, так что вы можете воспользоваться этим и пройти успех и неудачу обратных вызовов:

ConfirmationMessage = function(msg) { 
    return swal({ ... }); // <--- return the swal call which returns a promise 
}; 

ConfirmationMessage('message to show') 
    .then(function() { 
    // success happened 
    }, function(dismiss) { 
    // fail happened 
    // dismiss can be 'cancel', 'overlay', 'close', and 'timer' 
    if (dismiss === 'cancel') { 
     // user cancelled 
    } 
    }); 
Смежные вопросы