ТНХ для ответов на все вопросы,
и, наконец, я решил использовать некоторые инструменты, такие как 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
}
}
}
}
коды, как это трудно читать.
Я знаю, что «отложенная» библиотека может решить такую проблему,
Есть ли хороший «отложенный» модуль для узла?
И как производительность, если я закодирую узел с «отложенным»?
это стиль кода по умолчанию ... как это может быть труднее прочитать? не понимаю. – Cynede
Вам не нужно откладывать, вам нужно правильно использовать поток управления. Также знайте, как научиться эффективно использовать обратные вызовы – Raynos