ИЗМЕНИТЬ
спасибо ко всем ответам,
и, наконец, я решил использовать некоторые инструменты, такие как Step,
все, что мне нужно, это "управление потоком" и не хочу ничего, что может замедлить производительность (я не знаю, насколько точно это повлияло бы или эффект можно просто игнорировать).
Итак, я просто создаю небольшой инструмент для управления потоком:
line.js
/**
* Create the "next" function
*
* @param {Array} tasks
* @param {Number} index
* @param {Number} last
*/
var next = function(tasks, index, last) {
if (index == last) {
return tasks[index + 1];
}
else {
return function(data) {
var nextIndex = index + 1;
tasks[nextIndex](next(tasks, nextIndex, last), data);
};
}
};
/**
* Invoke functions in line.
*/
module.exports = function() {
var tasks = arguments,
last = tasks.length - 2;
tasks[0](next(tasks, 0, last));
};
использование:
var line = require("line.js");
line(function(next) {
someObj.find(function(err, docs) {
// codes
next(docs);
});
}, function(next, docs) {
// codes
});
Надеюсь, что это поможет.
EDIT END
Как известно,
Node встроенные или сторонние модули часто предоставляют асинхронный API,
и используя функцию "обратного вызова" для обработки результатов.
Это круто, но иногда это будет выглядеть так:
//some codes
}
}
}
}
Коды, подобные этому, трудно читать.
Я знаю, что "отложенная" библиотека может решить такую проблему,
Есть ли хороший "отложенный" модуль для Node?
И как производительность, если я закодирую Node с "отложенным"?