2016-11-01 4 views
3

Ich verwende sweetalert2 Bibliothek für die Anzeige von Warnungen in meinem Code.Stoppen Sie die Steuerung, während SweetAlert auf dem Bildschirm ist

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

     }); 
} 

Dies ist die JS-Funktion und ich verwende es an anderer Stelle.

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

Mein Problem ist

Ich möchte die Kontrolle stoppen, wenn die Warnmeldung auf dem Bildschirm und auf den Knopf drücken, um entscheiden wollen, ob OK kommen Wenn Bedingung wenn Abbrechen kommen zu sonst Bedingung aber Kontrolle wartet nicht auf die Antwort in Sweetalert2.

Antwort

3

Die swal ist eine asynchronous process, meaning you cannot just return a synchronous result from it.

Wenn man sich die docs anschaut, kann man sehen, dass swal ein promise zurückkehrt, so dass Sie Vorteil, dass und übergeben Sie den Erfolg und scheitern Rückrufe nehmen:

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 
    } 
    }); 
Verwandte Themen