Пытаясь понять функцию обратного вызова - PullRequest
0 голосов
/ 21 июня 2019

Я пытаюсь понять, почему моя функция выполняется, прежде чем я получу обратный вызов моего скрипта openModal.Я довольно новичок в javascript, но у меня было понимание, что когда вы передаете функцию, она будет выполняться при вызове (т.е. моя функция обратного вызова () в функции openModal) .Я посмотрел на ряд других примеров, и, похоже, у меня правильная структура, но я должен что-то упустить.Любое руководство здесь будет полезно.

Порядок событий при вызове openModal

  • Элемент списка
  • выполняет функцию обратного вызова
  • закрывает другие модальные
  • открывает текущий модал
  • ничего не делает, потому что функция обратного вызова не определена (почему она не определена?)

Разве события не должны разворачиватьсякак это

  • закрывает другие модальные
  • открывает текущий модальный
  • выполняет функцию обратного вызова

Любое руководство здесь приветствуется.

<script>
function openModal(modal, callback) {
    let modalCollection = document.getElementsByClassName(`modal`)
    if (modalCollection) {
        for (let index = 0; index < modalCollection.length; index++) {
            closeModal(modalCollection[index]);
        }
    }
    if (modal) {
        modal.style.display = `block`;
    }
    if (callback) {
        callback();
    }
}
</script>

openModal(modalContactDelete, openModalContactDeleteCallback(${element.ContactId}))

1 Ответ

2 голосов
/ 21 июня 2019

Он вызывается, потому что вы вызываете его с помощью ()

Вы можете попробовать следующее:

openModal(modalContactDelete, () => {
  openModalContactDeleteCallback(element.ContactId)
})

По этой причине обратный вызов будет анонимной функцией, внутри вас выпозвоните вашему openModalContactDeleteCallback

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...