|
|
|
Как приостановить выполнение функции...
|
|||
|---|---|---|---|
|
#18+
Есть функция, которая возвращает true или false. В ее конце перед ретурном по условию true или false выполняется еще одна ф-я с callback ф-ей: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. и мне нужно что бы после функции func выполнение приостановилось до окончания выполнения данной ф-и. Как мне это сделать? Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2012, 16:52 |
|
||
|
Как приостановить выполнение функции...
|
|||
|---|---|---|---|
|
#18+
kasikВ ее конце перед ретурном по условию true или false выполняется еще одна ф-я с callback ф-ейречь про jquery.ajax(), я правильно догадался? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2012, 16:56 |
|
||
|
Как приостановить выполнение функции...
|
|||
|---|---|---|---|
|
#18+
кроме ajax, есть множество других ф-й с колбэк вызовами... Эта не суть, суть описана выше! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2012, 17:01 |
|
||
|
Как приостановить выполнение функции...
|
|||
|---|---|---|---|
|
#18+
разработчики jquery.ajax() такую возможность предусмотрели а разработчики неизвестной функции, скорее всего, нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2012, 17:03 |
|
||
|
Как приостановить выполнение функции...
|
|||
|---|---|---|---|
|
#18+
kasikи мне нужно что бы после функции func выполнение приостановилось до окончания выполнения данной ф-и. Как мне это сделать?зависит от того, что в func. если там нет действительно асинхронных вызовов, а каллбак вызывается напрямую, то это всё отработает до упомянутого return с условием. в противном случае, придется немного переделать код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2012, 17:30 |
|
||
|
Как приостановить выполнение функции...
|
|||
|---|---|---|---|
|
#18+
Я тоже думаю, что вопрос не описан полностью и корректно. callback не подразумевает однозначного асинхронизма, а так как js у браузеров однопоточный, то может просто ждать, когда выполнится внутренняя функция? В противном случае - реализовывать механизм, аналогичный механизму ajax - делать флаг в видимости обеих функций и при обращении проверять его. Еще путем деления функции на часть "до" коллбека и "после". Но однозначно ответить сложно, так как задача нормально не поставлена. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2012, 17:34 |
|
||
|
Как приостановить выполнение функции...
|
|||
|---|---|---|---|
|
#18+
IDVsbruckВ противном случае - реализовывать механизм, аналогичный механизму ajax - делать флаг в видимости обеих функций и при обращении проверять его.О каком флаге речь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2012, 17:35 |
|
||
|
Как приостановить выполнение функции...
|
|||
|---|---|---|---|
|
#18+
У ajax? - Поле state у объекта XMLHttpRequest, который делают видимым и доступным для всех участников процесса (scope у него может быть не глобальным, но таким, чтобы зависимые функции доступились). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2012, 17:40 |
|
||
|
Как приостановить выполнение функции...
|
|||
|---|---|---|---|
|
#18+
IDVsbruckУ ajax? - Поле state у объекта XMLHttpRequest, который делают видимым и доступным для всех участников процесса (scope у него может быть не глобальным, но таким, чтобы зависимые функции доступились).Не state, а readyState. И это не флаг, а атрибут, что может принимать одно из нескольких (если быть точнее, то пяти) значений :) Всё равно не понимаю, что Вы предлагаете. Между func и if воткнуть while что-ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2012, 17:49 |
|
||
|
Как приостановить выполнение функции...
|
|||
|---|---|---|---|
|
#18+
мне и нужно что бы браузер ждал пока не выполнится функция func и тут уже даже будет не так и нужна колбэк ф-я, но по видимому реализовано через синхрон, и поэтому код идет дальше и получается наслоение, еще не закончилась одна фаза начинается следующая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2012, 17:50 |
|
||
|
Как приостановить выполнение функции...
|
|||
|---|---|---|---|
|
#18+
Между func и if воткнуть while что-ли? подвесит браузер и все... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2012, 17:51 |
|
||
|
Как приостановить выполнение функции...
|
|||
|---|---|---|---|
|
#18+
kasik, раздели вызывающий код на части: "до" каллбека и "после", как тут уже предлагалось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2012, 17:56 |
|
||
|
Как приостановить выполнение функции...
|
|||
|---|---|---|---|
|
#18+
kasikмне и нужно что бы браузер ждал пока не выполнится функция func и тут уже даже будет не так и нужна колбэк ф-я, но по видимому реализовано через синхрон, и поэтому код идет дальше и получается наслоение, еще не закончилась одна фаза начинается следующая.Есть такое понятие deffered. Метод jQuery.ajax возвращает deffered-объект. А при помощи последнего можно выстроить цепочку вызовов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2012, 17:59 |
|
||
|
Как приостановить выполнение функции...
|
|||
|---|---|---|---|
|
#18+
а если это не "Метод jQuery.ajax"?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2012, 18:04 |
|
||
|
Как приостановить выполнение функции...
|
|||
|---|---|---|---|
|
#18+
kasikа если это не "Метод jQuery.ajax"??1. Ключевые слова - это "Метод возвращает deffered-объект"; 2. Если не ajax и при этом асинхронная операция, то что? Любопытно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2012, 18:44 |
|
||
|
Как приостановить выполнение функции...
|
|||
|---|---|---|---|
|
#18+
skyANA2. Если не ajax и при этом асинхронная операция, то что? Любопытно.setTimeout FileReader WebSocket IndexedDB WebWorker обработка события (например, onclick, или onload картинки) вроде ничего не забыл.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2012, 18:48 |
|
||
|
Как приостановить выполнение функции...
|
|||
|---|---|---|---|
|
#18+
Яростный Меч, я хотел услышать ответ от ТС, зачем Вы ему подсказали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2012, 18:56 |
|
||
|
Как приостановить выполнение функции...
|
|||
|---|---|---|---|
|
#18+
я не на экзамене, что бы мне подсказывать! Я разделил функции, получилось следующее(не совсем рабочее): сначала опищу вообще все иерархию - Код: 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. в первоначальном виде было, что func2 возвращала флаг и определяло идти дальше по коду func1 или нет, но после разделение, я ушел от того контекста? и как мне теперь возвратить нужный флаг в func1? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2012, 11:01 |
|
||
|
Как приостановить выполнение функции...
|
|||
|---|---|---|---|
|
#18+
Все понял: перенести func1 в func3 вместо return true ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2012, 11:13 |
|
||
|
Как приостановить выполнение функции...
|
|||
|---|---|---|---|
|
#18+
Но возникает "проблема", если нужно передать параметры в func3... Выход только использовать глобальные переменные назначающие нужное значение в func2, которая будет уже параметрическая. так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2012, 11:18 |
|
||
|
Как приостановить выполнение функции...
|
|||
|---|---|---|---|
|
#18+
kasikЕсть функция, которая возвращает true или false. В ее конце перед ретурном по условию true или false выполняется еще одна ф-я с callback ф-ей: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. и мне нужно что бы после функции func выполнение приостановилось до окончания выполнения данной ф-и. Как мне это сделать? Как вариант... Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2012, 14:10 |
|
||
|
|

start [/forum/topic.php?fid=22&msg=38036738&tid=1449110]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
196ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 225ms |
| total: | 496ms |

| 0 / 0 |
