sync() { var idsInUse = this.props.groups; var idsInCache = [...this.props.cache.keys()]; var outdated = difference(idsInCache, idsInUse); var missing = difference(idsInUse, idsInCache); console.log(`[GroupSync] ${missing.length} missing, ${outdated.length} outdated`); if (missing.length > 0) { var effect = vk.groups.getById({ group_ids: missing.slice(0, 100).join(',') }, (err, res) => { if (err) { return console.log(err); } var cache = res.response.reduce((c, g) => c.set(String(g.id), g), this.props.cache); this.props.onSync(cache); }); this.perform(effect); } }
var sync = () => { var effect = vk.groups.get({}, (err, res) => { if (err) { return console.log(err); } onSync(res.response.items.map(String)); }); this.perform(effect); timer = setTimeout(sync, interval * 1000); }