Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.12.2015, 19:51
Новичок на форуме
Отправить личное сообщение для fimont Посмотреть профиль Найти все сообщения от fimont
 
Регистрация: 17.12.2015
Сообщений: 3

вложение вызова функции
Здравствуйте, уважаемые форумчане!

Подскажите, пожалуйста, где можно почитать о вложении вызовов функции?
Проблема такая: есть обработчик события mousemove, в котором вызывается некая функция draw. Эта функция неспешная, и следующий вызов вполне может произойти до окончания ее работы от предыдущего события.
Будет ли происходить вложение вызовов или обработчик события не может прерывать сам себя, и запросы на обработку события будут образовывать очередь?
Что происходит в таком случае, как этот работает этот механизм?

Последний раз редактировалось fimont, 17.12.2015 в 20:01. Причина: уточнение вопроса
Ответить с цитированием
  #2 (permalink)  
Старый 17.12.2015, 21:24
Новичок на форуме
Посмотреть профиль Найти все сообщения от nestedFunctions
 
Регистрация: 17.12.2015
Сообщений: 2

fimont,
В случае, который вы описываете, если я правильно понял, ф-ция draw является асинхронной, никакого "вложения вызовов" не будет
Сообщение от fimont
или обработчик события не может прерывать сам себя
обработчик события в Вашем случае, всего лишь вызывает другую функцию, ему нечего прерывать, он просто кидает асинхронный вызов в очередь, и уходит.
Сообщение от fimont
запросы на обработку события будут образовывать очередь?
нет
Сообщение от fimont
как этот работает этот механизм?
на событие onmousemove интерпретатор вызывает обработчик, который в свою очередь вызывает draw, которая, в свою очередь кидает свой коллбек в очередь событий. Оба вложенных вызова возвращают undefined, если не прописано иное.
Ответить с цитированием
  #3 (permalink)  
Старый 18.12.2015, 10:50
Новичок на форуме
Отправить личное сообщение для fimont Посмотреть профиль Найти все сообщения от fimont
 
Регистрация: 17.12.2015
Сообщений: 3

nestedFunctions, спасибо за быстрый ответ!
Если позволите, пара уточнений:
draw() - это обычный вызов функции, вполне себе синхронный. И, таким образом, до окончания выполнения этой функции обработчик события (mousemove) свою работу не заканчивает, а остальные обработчики событий, если таковые происходят, просто ставятся в очередь и ожидают. Я правильно понял?
И еще - обработчики событий отложенного запуска функций setInterval тоже стоят в этой очереди на обработку?

Еще раз, спасибо!
Ответить с цитированием
  #4 (permalink)  
Старый 18.12.2015, 18:13
Новичок на форуме
Посмотреть профиль Найти все сообщения от goodbigbeer
 
Регистрация: 18.12.2015
Сообщений: 9

Сообщение от fimont
draw() - это обычный вызов функции, вполне себе синхронный
сам по себе вызов всегда синхронен, асинхронен код, который бросается из этой функции.
Сообщение от fimont
до окончания выполнения этой функции обработчик события (mousemove) свою работу не заканчивает
Да, но асинхронный код живет своей жизнью, он не зависит от этих взовов
Сообщение от fimont
а остальные обработчики событий, если таковые происходят, просто ставятся в очередь и ожидают. Я правильно понял?
Да, если их несколько на этот момент
Сообщение от fimont
обработчики событий отложенного запуска функций setInterval тоже стоят в этой очереди на обработку?
Да
Ответить с цитированием
  #5 (permalink)  
Старый 19.12.2015, 11:43
Новичок на форуме
Отправить личное сообщение для fimont Посмотреть профиль Найти все сообщения от fimont
 
Регистрация: 17.12.2015
Сообщений: 3

всем БОЛЬШОЕ спасибо!
все стало гораздо яснее...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка повторного вызова функции без глобальных переменных GlaIZier Общие вопросы Javascript 21 29.03.2014 20:31
Сохранение переменной до вызова функции 3.14rate Общие вопросы Javascript 2 11.03.2014 04:27
Почему происходит проверка до вызова самой функции? wwwboy Общие вопросы Javascript 5 09.12.2011 03:37
Вставка элемента в место вызова функции belkir Элементы интерфейса 21 05.08.2011 08:59
Строка вызова функции DMH Общие вопросы Javascript 11 10.08.2010 09:06