powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как приостановить выполнение функции...
22 сообщений из 22, страница 1 из 1
Как приостановить выполнение функции...
    #38036624
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть функция, которая возвращает true или false.
В ее конце перед ретурном по условию true или false выполняется еще одна ф-я с callback ф-ей:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
func(..., fгnction (){...})
if (.....)
{
return true;
}
else
{
return false;
};



и мне нужно что бы после функции func выполнение приостановилось до окончания выполнения данной ф-и.

Как мне это сделать?

Спасибо
...
Рейтинг: 0 / 0
Как приостановить выполнение функции...
    #38036634
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kasikВ ее конце перед ретурном по условию true или false выполняется еще одна ф-я с callback ф-ейречь про jquery.ajax(), я правильно догадался?
...
Рейтинг: 0 / 0
Как приостановить выполнение функции...
    #38036647
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кроме ajax, есть множество других ф-й с колбэк вызовами...
Эта не суть, суть описана выше!
...
Рейтинг: 0 / 0
Как приостановить выполнение функции...
    #38036658
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
разработчики jquery.ajax() такую возможность предусмотрели
а разработчики неизвестной функции, скорее всего, нет
...
Рейтинг: 0 / 0
Как приостановить выполнение функции...
    #38036728
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kasikи мне нужно что бы после функции func выполнение приостановилось до окончания выполнения данной ф-и.

Как мне это сделать?зависит от того, что в func.
если там нет действительно асинхронных вызовов, а каллбак вызывается напрямую, то это всё отработает до упомянутого return с условием.
в противном случае, придется немного переделать код.
...
Рейтинг: 0 / 0
Как приостановить выполнение функции...
    #38036738
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я тоже думаю, что вопрос не описан полностью и корректно.
callback не подразумевает однозначного асинхронизма, а так как js у браузеров однопоточный, то может просто ждать, когда выполнится внутренняя функция?
В противном случае - реализовывать механизм, аналогичный механизму ajax - делать флаг в видимости обеих функций и при обращении проверять его. Еще путем деления функции на часть "до" коллбека и "после". Но однозначно ответить сложно, так как задача нормально не поставлена.
...
Рейтинг: 0 / 0
Как приостановить выполнение функции...
    #38036747
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruckВ противном случае - реализовывать механизм, аналогичный механизму ajax - делать флаг в видимости обеих функций и при обращении проверять его.О каком флаге речь?
...
Рейтинг: 0 / 0
Как приостановить выполнение функции...
    #38036762
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У ajax? - Поле state у объекта XMLHttpRequest, который делают видимым и доступным для всех участников процесса (scope у него может быть не глобальным, но таким, чтобы зависимые функции доступились).
...
Рейтинг: 0 / 0
Как приостановить выполнение функции...
    #38036791
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruckУ ajax? - Поле state у объекта XMLHttpRequest, который делают видимым и доступным для всех участников процесса (scope у него может быть не глобальным, но таким, чтобы зависимые функции доступились).Не state, а readyState. И это не флаг, а атрибут, что может принимать одно из нескольких (если быть точнее, то пяти) значений :)
Всё равно не понимаю, что Вы предлагаете. Между func и if воткнуть while что-ли?
...
Рейтинг: 0 / 0
Как приостановить выполнение функции...
    #38036793
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мне и нужно что бы браузер ждал пока не выполнится функция func и тут уже даже будет не так и нужна колбэк ф-я, но по видимому реализовано через синхрон, и поэтому код идет дальше и получается наслоение, еще не закончилась одна фаза начинается следующая.
...
Рейтинг: 0 / 0
Как приостановить выполнение функции...
    #38036798
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Между func и if воткнуть while что-ли?

подвесит браузер и все...
...
Рейтинг: 0 / 0
Как приостановить выполнение функции...
    #38036807
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kasik,

раздели вызывающий код на части: "до" каллбека и "после", как тут уже предлагалось.
...
Рейтинг: 0 / 0
Как приостановить выполнение функции...
    #38036808
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kasikмне и нужно что бы браузер ждал пока не выполнится функция func и тут уже даже будет не так и нужна колбэк ф-я, но по видимому реализовано через синхрон, и поэтому код идет дальше и получается наслоение, еще не закончилась одна фаза начинается следующая.Есть такое понятие deffered. Метод jQuery.ajax возвращает deffered-объект. А при помощи последнего можно выстроить цепочку вызовов.
...
Рейтинг: 0 / 0
Как приостановить выполнение функции...
    #38036819
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если это не "Метод jQuery.ajax"??
...
Рейтинг: 0 / 0
Как приостановить выполнение функции...
    #38036852
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kasikа если это не "Метод jQuery.ajax"??1. Ключевые слова - это "Метод возвращает deffered-объект";
2. Если не ajax и при этом асинхронная операция, то что? Любопытно.
...
Рейтинг: 0 / 0
Как приостановить выполнение функции...
    #38036857
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA2. Если не ajax и при этом асинхронная операция, то что? Любопытно.setTimeout
FileReader
WebSocket
IndexedDB
WebWorker
обработка события (например, onclick, или onload картинки)

вроде ничего не забыл..
...
Рейтинг: 0 / 0
Как приостановить выполнение функции...
    #38036868
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный Меч, я хотел услышать ответ от ТС, зачем Вы ему подсказали?
...
Рейтинг: 0 / 0
Как приостановить выполнение функции...
    #38037513
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я не на экзамене, что бы мне подсказывать!

Я разделил функции, получилось следующее(не совсем рабочее):
сначала опищу вообще все иерархию -

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
function func1()
{
  if (!func2())
  {
    return;
  }

  ....  
 <код>
};

function func2()
{
  ...
  func(..., func3)
  <код окончен>
};

function func3()
{
  ...
  if (...)
  {
    ...
    return true;
  }
  else
  {
    ...
    return false;
  };
};



в первоначальном виде было, что func2 возвращала флаг и определяло идти дальше по коду func1 или нет, но после разделение, я
ушел от того контекста? и как мне теперь возвратить нужный флаг в func1?
...
Рейтинг: 0 / 0
Как приостановить выполнение функции...
    #38037541
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все понял: перенести func1 в func3 вместо return true
...
Рейтинг: 0 / 0
Как приостановить выполнение функции...
    #38037549
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но возникает "проблема", если нужно передать параметры в func3...

Выход только использовать глобальные переменные назначающие нужное значение в func2, которая будет уже параметрическая. так?
...
Рейтинг: 0 / 0
Как приостановить выполнение функции...
    #38037968
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kasikЕсть функция, которая возвращает true или false.
В ее конце перед ретурном по условию true или false выполняется еще одна ф-я с callback ф-ей:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
func(..., fгnction (){...})
if (.....)
{
return true;
}
else
{
return false;
};



и мне нужно что бы после функции func выполнение приостановилось до окончания выполнения данной ф-и.

Как мне это сделать?
Как вариант...

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
function func(..., pFunct) {
   var type;
   if (.....) {
      type=true;
   } else {
      type=false;
   };
   pFunct;
   return type;
};
...
Рейтинг: 0 / 0
Как приостановить выполнение функции...
    #38037973
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kasikя не на экзамене, что бы мне подсказывать!
Тогда что нам с тобой делать?
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как приостановить выполнение функции...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]