Как ожидать ВСЕХ Слушателей выполнения для Custom jQuery Event? - PullRequest
1 голос
/ 02 мая 2020
$(document).on('custom-event', listener1 );
$(document).on('custom-event', listener2 );

function listener1() {
    return new Promise((resolve) => {
        setTimeout(resolve, 3000);
    })
}

function listener2() {
    return new Promise((resolve) => {
        setTimeout(resolve, 10000);
    })
}


$(document).trigger('custom-event');
const afterAwaiting = true; // Need to await 10 seconds after previous line of code to execute this statement

Я запустил пользовательский Событие - custom-event.

Необходимо дождаться, когда все слушатели выполнят свой код,

, затем продолжат выполнение следующее утверждение.

1 Ответ

0 голосов
/ 02 мая 2020

Я нашел решение, используя when.

await $.when( $(document).trigger('custom-event') )

const afterAwaiting = true;

jQuery запускает пользовательские события Синхронно в соответствии с вопросом

jQuery синхронно запускать пользовательское событие?

Или оно работает даже без await

$(document).trigger('custom-event')
...