Event "before" a asynchroniczność

0

Mam taki kod:

manager.attachEvent("onBeforeDelete", function(id){

  var item = manager.getItem(id);
         
      $.ajax({
           type: 'DELETE',
           url: url,
           data: { id: id }
       }).done(function (data) {
               // true
       }).fail(function(xhr) {
              // false
       });
});

Jest to podpięcie się pod event w momencie kliknięcia usuń w takim sobie menadżerze. Zwracając true lub false sterujemy, czy ten element zniknie po stronie frontu (brak return jest równy zwrotce true). Moje pytanie czy da się to osiągnąć za pomocą promises, bo w tym momencie skrypt oczywiście nie czeka na zwrotkę z serwera, tylko element znika bez względu czy udało się usunąć czy nie.

1

Once you go async, you never go back - nie można zamienić kodu asynchronicznego na synchroniczny, stąd odpowiedź: nie, nie można tego osiągnąć w sposób, w jaki myślisz.

Może mógłbyś zrobić return $.ajax({ ... }) i przerobić kod odpowiedzialny za chowanie elementów tak, aby sprawdzał czy nie otrzymywał Promise i wtedy podpinał się automatycznie pod .then()?

0

No właśnie tak myślałem, że jeżeli twórca biblioteki nie przewidział w zwrotce promise, to nic nie jestem w stanie zrobić.
No właśnie nie mam wpływu na bibliotekę, choć to dość potężny framework (webix) więc może przewidzieli taki case.
https://docs.webix.com/api__refs__promise.html

1 użytkowników online, w tym zalogowanych: 0, gości: 1