Я начинаю с Node.js. Синтаксически я доволен тем, что JavaScript использовал его для создания веб-интерфейсов. У меня есть тоны опыта ООП в Java и C#, и я понимаю основы базового программирования. Однако, как только сложность становится выше определенного момента, я начинаю находить ее сложной.Функциональное программирование в Node.js - Подождите завершения функции
Я строю модуль узла, который содержит некоторые другие модули, которые я написал. Они каждый работают отлично самостоятельно, но я пытаюсь объединить их вместе.
var miner = require("./miner"),
dbpedia = require("./dbpedia");
exports.getEntities = function(uri, callback) {
miner.extractEntities(uri, function (entities) {
var final = [];
entities.forEach(function (element, index) {
var newEntity = {
id : element.id,
title : element.title,
weight : element.weight,
uri : ""
};
dbpedia.getEntities(element.title, function(entity) {
if (entity.length > 0) {
newEntity.uri = entity[0].URI[0];
}
final.push(newEntity);
});
});
callback(final);
});
};
У меня есть вопрос, как я положил все это вместе, так что я могу назвать callback
однажды final
полностью заполнен. Я уверен, что это что-то простое, но я изо всех сил пытаюсь это исправить. Я подозреваю, что мне, возможно, придется отменить порядок, но я не понимаю, как это сделать.
Используйте обещание или 'async.map'. – SLaks
Нет, это не просто. Если вы знакомы с веб-интерфейсом, вы должны быть знакомы с асинхронными обратными вызовами (прослушиватели событий)? – Bergi