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.
function checkSth() { return confirm(); // to dopiero zwróci w momencie akcji } settings.checkSth.call().then(function(data) { // tu po akcji użytkownika zwróci zawsze true lub false }).done(function() { // albo tu? }); // 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
function askAboutConfirm() { return new Promise((resolve) => { $.confirm({ title: 'Confirm!', content: 'Simple confirm!', buttons: { confirm: function () { resolve(true); }, cancel: function () { resolve(false); }, } }); }); } function thisNeedConfirm() { alert('t'); } function loadPage() { let terminate = false; askAboutConfirm() .then(function(data) { if (data === true) { thisNeedConfirm(); } }); // thisNeedConfirm(); v2 } 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?