Callback работает не так как я от него жду
Вопрос теоретический, без кода.
Прочитал про callback, даже попробовал - все работает. Но я не понимаю его суть. Допустим у меня выполняется сложная функция, внутри которой есть асинхронный вызов request. Мне надо приостановить функцию до момента завершения request, потому что последующий код зависит от результатов request. Я прочитал, что решение - callback. Но callback то внутри request'а. Да, он вызовется по завершению request'а, но к тому моменту функция уже отломается без необходимых данных, которые request дожен был поставить. Вопросы: 1) Я понимаю, что пропустил какой-то глобальный момент и что-то понимаю не так как оно есть. Но что я пропустил? 2) Если callback вызывается всегда в конце, то какой смысл, что его все равно во всех примерах руками прописывают? И если его надо прописывать, чем он тогда отличается от любой другой переданной в аргумент функции? |
|
Цитата:
Те же, кого не устраивает такой расклад, скажут так: ты, запрос работай себе сколько нужно, мне ждать тебя некогда, у меня другие дела есть. А когда отработаешь - дай знать. Вот тебе callback-функция, позовешь когда будешь готов со своими данными. Впрочем по ссылке nerv_'а все уже разжевано. |
Нет, я не это спрашивал. Мне очевидны перимущества асинхронности и я уже про них читал. Мне были не очевидны принципы работы коллбэка. Но я уже у товарища спросил, оказывается звено, которое я потерял - было EventEmitter. После того как я про него прочитал, все встало на свои места.
Но все равно спасибо за ответ. |
Часовой пояс GMT +3, время: 00:17. |