Как остановить выполнение функции?
как сделать, чтобы при запуске другой функции, функция anim() останавливалась, т.е. элемент больше не двигался.
function anim_stop() < //тут как то нужно остановить функцию anim() //. //а тут какой нить код который не касается функции anim() >
Дайте ответ на чистом js
Отслеживать
110k 23 23 золотых знака 113 113 серебряных знаков 377 377 бронзовых знаков
задан 27 янв 2013 в 11:03
333 6 6 золотых знаков 13 13 серебряных знаков 33 33 бронзовых знака
допустим обе функции имеет доступ к одной переменной, в зависимости от значения которой код функции anim выполняется или нет, тогда задача anim_stop контролировать значение этой переменной
27 янв 2013 в 11:13
clearTimeout()
27 янв 2013 в 11:14
На счёт переменной, делал так, но это не очень подходило, а вот clearTimeout() то что нужно
27 янв 2013 в 11:27
Остановить функцию как таковую нельзя, это было бы очень опасно. (Представьте себе, что кто-то «остановил» функцию, которая держит блокировку.) Можно только намекнуть функции (через разделяемую переменную или ещё как-то), что она должна сама себя остановить. Если для вас подходит clearTimeout , это значит, что у вас не одна, а серия функций.
27 янв 2013 в 13:03
Тем не менее, clearTimeout, может быть, не самое лучшее решение: знания о том, как остановить серию функций, должно быть локально. Представьте себе, например, что вы хотите по окончанию серии подчистить что-нибудь.
Как остановить выполнение функции js
Чтобы остановить выполнение функции, достаточно просто вызвать инстркуцию return . Например:
const func = (num) => // если переданное число равно 2, то останавливаем работу функции if (num === 2) return; > console.log('hello'); >; func(1); // => hello func(2);
В примере выше, если вызвана функция с параметром 2, то срабатывает условие и функция прерывается благодаря return . Также можно вернуть результат из функции:
const func = (num) => // если переданное число равно 2, то останавливаем работу функции if (num === 2) return 'is number 2'; > return 'hello'; >; console.log(func(1)); // => hello console.log(func(2)); // => is number 2
Как остановить выполнение функции js
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006
Откуда: Israel
Помог: 3 раз(а)
Секрет
Теперь, когда вы уже наверняка второпях отправили свой запрос,
я расскажу вам простой секрет, который сэкономит вам уйму ожиданий,
даже если первый ответ по теме последуем сразу же.
Само собой я знаю что ответят мне тут же, и если я посмотрю
на сообщения на форуме, то пойму что в общем то я и не ошибаюсь.
Но еще я точно замечу, что очень мало тем, в которых всего два ответа :
вопрос автора и еще два сообщение вида Ответ + Спасибо
После этого приходится начинать уточнять этим неграмотным что мне надо.
Они что, сами читать не умеют? А уточнять приходится.
И иногда пока они переварят то что я им скажу проходит и не одна ночь..
Уверен что если бы я им сказал что у меня есть
фиолетовый квадрат, и нужно превратить его в синий треугольник
и я пытался взять кисточку, макнуть в банку и поводить ей по квадрату
но почему то кисточка не принимала цвет краски в банке,
то на мой вопрос — где взять правильные банки мне бы ответили гораздо быстрее
предложив её открыть, а не тратить еще стольник на жестянку.
Поэтому с тех пор я строю свои вопросы по проверенной давным давно схеме:
Что есть
Что нужно получить
Как я пытался
Почему или что у меня не получилось.
На последок как оно происходит на форумах
Цитата:
Новичок: Подскажите пожалуста самый крепкий сорт дерева! Весь инет перерыл, поиском пользовался!
Старожил: Объясни, зачем тебе понадобилось дерево? Сейчас оно в строительстве практически не используется.
Новичок: Я небоскрёб собираюсь строить. Хочу узнать, из какого дерева делать перекрытия между этажами!
Старожил: Какое дерево? Ты вообще соображаешь, что говоришь?
Новичок: Чем мне нравиться этот форум — из двух ответов ниодного конкретного. Одни вопросы неподелу!
Старожил: Не нравится — тебя здесь никто не держит. Но если ты не соображаешь, что из дерева небоскрёбы не строят, то лучше бы тебе сначала школу закончить.
Новичок: Не знаите — лучше молчите! У меня дедушка в деревянном доме живёт! У НЕГО НИЧЕГО НЕ ЛОМАЕТСЯ.
Но у него дом из сосны, а я понимаю, что для небоскрёба нужно дерево прочнее! Поэтому и спрашиваю. А от вас нормального ответа недождёшся.
Прохожий: Самое крепкое дерево — дуб. Вот тебе технология вымачивания дуба в солёной воде, она придаёт дубу особую прочность:
Новичок: Спасибо, братан! То что нужно.
Отредактировано модератором: Uchkuma, 26 Апреля, 2011 — 10:21:12
Как остановить функцию JS после выполнения вложенной функции?
Добрый день/утро/вечер/ночь!
Есть функция dragndrop. Нужно чтобы после того как сработает функция drop, весь dragndrop перестал работать, то есть когда пользователь перенесет 1 объект, dragndrop выключился и второй объект уже будет невозможно перенести.
Я попробовал Реализовать это через async function и await new Promise. Вот сам код:
async function dragndrop3Orange() < let flag = false; await new Promise(resolve => < const square3 = document.querySelectorAll('.square3'); const checker3 = document.querySelectorAll('.checker3__orange'); const dragstart = function () < setTimeout(() =>, 0); >; const dragend = function () < setTimeout(() =>, 0); >; checker3.forEach(element => < element.addEventListener('dragstart', dragstart); element.addEventListener('dragend', dragend); >); const dragover = function(event) < event.preventDefault(); >; const drop = function() < console.log('drop'); checker3.forEach(element => < if (element.classList.contains('hide') === true) < this.prepend(element); >>); this.classList.remove('hovered'); resolve(flag = true); // я сделал флаг тру >; square3.forEach(element => < element.addEventListener('dragover', dragover); element.addEventListener('drop', drop); >); >); console.log(flag);// флаг стал true if(flag === true) < return; //почему функция не останавливается и объекты дальше можно двигать? >> dragndrop3Orange();
- Вопрос задан более года назад
- 297 просмотров
2 комментария
Простой 2 комментария