Особых трудностей при асинхронном программировании и программировании на JS не возникает, но с разрастанием проекта возникает необходимость в рамках одного контекста выполнять сразу несколько асинхронных запросов (особо актуально на Node.js), и бывает так, что уже на третьем вложении скобки и все остальное к анонимным коллбэкам начинает мозолить глаза.
Например:
do.smth1(function(arg1){
////code
////code
////code
do.smth2(function(arg2){
////code
////code
////code
do.smth3(function(arg3){
////code
////code
////code
});
});
});
Основная задача в том, чтобы выполнять асинхронные запросы последовательно, но вот с такими вложениями код становится плохо читаемым. Какие есть варианты для структурирования таких вещей в Node.js?