#node.js #express #cradle
#node.js #экспресс #колыбель
Вопрос:
Я использую Express для проекта, и я опробовал базу данных CouchDB с помощью Cradle. Хотя идея асинхронного выполнения хороша из соображений производительности, она делает мой код действительно беспорядочным для подпрограмм, где мне нужно выполнить несколько вызовов базы данных подряд.
Возможно ли выполнять вызовы колыбели без использования обратного вызова? Или, я полагаю, правильнее, есть ли лучший способ организовать код, который не предполагает вложения 3 или 4 анонимных функций друг в друга только для получения результатов запроса к базе данных? Код используется только в одном месте, поэтому для меня не имеет смысла использовать именованные функции, которые будут вызываться только один раз.
Комментарии:
1. Обычно я бы использовал асинхронный модуль, если у вас есть ряд асинхронных задач. github.com/caolan/async Если вы опубликуете несколько примеров своего кода, я могу привести вам несколько примеров.
Ответ №1:
Возможно ли выполнять вызовы колыбели без использования обратного вызова?
Насколько я знаю, cradle имеет только асинхронный API.
Или, я полагаю, правильнее, есть ли лучший способ организовать код, который не предполагает вложения 3 или 4 анонимных функций друг в друга только для получения результатов запроса к базе данных?
Я бы сначала рекомендовал прочитать следующие статьи по теме управления потоком, чтобы получить более полное представление о том, что происходит:
- Понимание программирования, управляемого событиями
- Асинхронный дизайн кода с Node.js
- Понимание циклов событий и написание отличного кода для Node.js
- Node.js : Асинхронный ввод-вывод для удовольствия и прибыли
- Поток управления в узле
- Поток управления в узле, часть II
- Поток управления в узле, часть III
- Асинхронный код в node.js
Тогда вы можете упростить задачу и воспользоваться несколькими библиотеками управления потоком, которые решают проблемы асинхронного кода в node.js:
Комментарии:
1. Также callbackhell.com это действительно хорошее руководство по асинхронному javascript. Попытка принудительно node.js переход на синхронный API обычно является плохой идеей. Также нет ничего плохого в использовании именованной функции только один раз. Даже если только для удобства чтения кода именованные функции того стоят
2. Второй URL-адрес изменен. Я думаю, это то, что вы имели в виду: shinesolutions.com/2011/08/26 /…