@Hellas

Что означает следующая строчка в nodejs скрипте?

callback = callback || function() {};

User.updateLastOnlineTime = function(uid, callback) {
		callback = callback || function() {};
		db.getObjectFields('user:' + uid, ['status', 'lastonline'], function(err, userData) {
			var now = Date.now();
			if (err || userData.status === 'offline' || now - parseInt(userData.lastonline, 10) < 300000) {
				return callback(err);
			}
			User.setUserField(uid, 'lastonline', now, callback);
		});
	};
  • Вопрос задан
  • 245 просмотров
Решения вопроса 1
maximpushkarev75
@maximpushkarev75
Very bad monkey coder
если функция callback не задана как параметр при вызове updateLastOnlineTime, то внутри updateLastOnlineTime будет проинициализирована новой пустой функцией.

но лучше бы проверку, что callback реально является функцией, а не другим объектом, к примеру. вот как-то так:

function isFunction(fn) {
        var obj= {};
        return fn && obj.toString.call(fn) === '[object Function]';
}

callback = isFunction(callback) || function() {};
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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