function getUserData (id, callback) {
vk.api('users.get',{
'user_ids' : id,
'fields' : 'photo_100'
}, function(err, result) {
if (err) callback(err);
else {
callback(null, result.response[0]);
}
});
}
var cache_ = {},
Class = require('atma-class');
function getUserData(id, callback) {
var dfr = cache_[id];
if (dfr == null) {
// делеаем запрос только с первым вызовом функции с этим id
dfr = cache_[id] = new Class.Deferred();
vk.api('users.get', {
'user_ids': id,
'fields': 'photo_100'
}, function(err, result) {
if (err)
return dfr.fail(err);
dfr.resolve(result.response[0]);
});
}
// подписываемся на окончание загрузки, если же
// загрузка уже завершилась(успешно или нет),
// то callback вызывается сраюу
dfr
.done(function(response) {
callback(null, response)
})
.fail(callback);
}