Вы думаете, что имперский: C следует за B, следует за A. Забудьте об этом.
AJAX и современный JavaScript работают по-другому.Вы никогда не говорите «получить данные сейчас», вы говорите «вызывайте X, когда данные доступны».
Таким образом, решение состоит в том, чтобы написать некоторый код, который делает что-то полезное с данными.Давайте назовем эту функцию a
.Вместо:
var data = conn.getData();
a( data );
b( data );
c( data );
вы делаете
conn.getData( a ); // a has to call b which calls c.
В конечном итоге данные будут там, и a
будет вызываться с data
в качестве аргумента.
Увидеть?Вы не связываете вызовы a()
и b()
, как в традиционном программировании.Вместо этого вы создаете функции, которые делают то, что вы хотите, и передаете эти функции.