Mam własną metodę/plugin w jQuery, chciałbym aby była uniwersalna i przyjmowała callback jako opcjonalne ustawienie np. beforeSubmit().
W ciele tej metody chciałbym, aby po opaleniu eventu, moja metoda właściwa oczekiwała na zwrócenie bool'a z tej metody.
Ta metoda nie zwróci od razu tego, bo powiedzmy, że użyje metody confirm() w niej czyli musi jakby "czekać" na interakcje.

  1. function checkSth() {
  2. return confirm(); // to dopiero zwróci w momencie akcji
  3. }
  4.  
  5.  
  6. settings.checkSth.call().then(function(data) {
  7. // tu po akcji użytkownika zwróci zawsze true lub false
  8.  
  9. }).done(function() {
  10. // albo tu?
  11. });
  12.  
  13. // jeżeli checkSth zwróciło false chce tu dać return false czyli przerwać działanie metody właściwej; w innym przypadku kontynuuj


Czy to się da osiągnąć za pomocą promisess albo deffered?

// edit

  1. function askAboutConfirm() {
  2. return new Promise((resolve) => {
  3. $.confirm({
  4. title: 'Confirm!',
  5. content: 'Simple confirm!',
  6. buttons: {
  7. confirm: function () {
  8. resolve(true);
  9. },
  10. cancel: function () {
  11. resolve(false);
  12. },
  13. }
  14. });
  15. });
  16. }
  17.  
  18. function thisNeedConfirm() {
  19. alert('t');
  20. }
  21.  
  22. function loadPage() {
  23.  
  24. let terminate = false;
  25.  
  26. askAboutConfirm()
  27. .then(function(data) {
  28. if (data === true) {
  29. thisNeedConfirm();
  30. }
  31. });
  32.  
  33. // thisNeedConfirm(); v2
  34. }
  35.  
  36. loadPage();


Mam coś takiego, względnie działa. Jedynie to co czeka musi zostać przeniesione do then (chciałem wcześniej osiągnąć efekt, że czeka na ten return).
Jakieś uwagi?