Я пытаюсь выяснить, как я могу сделать свой код более асинхронным, используя витую.
- Функция возвращает отложенный объект
- , затем я добавляю список обратных вызовов
- первый обратный вызов будет вызван после того, как отложенная функция предоставит некоторый результат через
deferred_obj.callback
- , затем в цепочке обратных вызовов первый обратный вызов что-то сделает с данными и вызовет второй обратный вызов
- и т. Д.
однако цепные обратные вызовы не будут считаться асинхронными, поскольку они объединены в цепочку, и цикл обработки событий будет запускать каждый из них одновременно, пока не будет больше, верно?
Однако, если у меня есть отложенный объект, и я присоединяю в качестве его обратного вызова deferred_obj.callback, как в d.addCallback(deferred_obj.callback)
, тогда это будет считаться асинхронным, потому что deferred_obj ожидает данные, а затемметод, который будет передавать данные, также ожидает данные, однако, как только объект d.callback 'd' обрабатывает данные, он вызывает deferred_obj.callback, однако, поскольку этот объект откладывается, в отличие от случая цепных обратных вызовов, он будет выполняться асинхронно ... правильно?
Предполагая, что весь мой код не является блокирующим, это означает, что связанные обратные вызовы НЕ являются асинхроннымив то время как отсроченные есть, верно?