@vetsmen

Почему console.log работает, а return нет?

Ребят, почему console.log работает, а return нет? Пишет underfind.
Вот код
var redisClient = require('../lib/redis');

var getChatData = function() {
	redisClient.lrange('messages', 0, 4, function(err, reply) {
		reply.map(function(msg) {
			return JSON.parse(msg);
		})
	});
}

module.exports = getChatData;

и далее пишу в другом файле
var HomeModel = require('../models/Home');
console.log(HomeModel());

но пишет underfind.
А если в изначальном коде вместо return поставить console.log, то все окей.
  • Вопрос задан
  • 421 просмотр
Решения вопроса 1
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
var redisClient = require('../lib/redis');

var getChatData = function () {
    return new Promise((resolve, reject) => {
        redisClient.lrange('messages', 0, 4, (err, reply) => {
            if (err) {
                reject(err);
            } else {
                resolve(reply.map(msg => JSON.parse(msg)));
            }
        });
    });
}

module.exports = getChatData;


(async () => {
    try {
        const HomeModel = require('../models/Home');
        console.log(await HomeModel());
    } catch (err) {
        console.error(err);
    }
})();

node.js запускать с флагом harmony
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@antonecma
Nodejs backender
Потому что асинхронность.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы