dataloader

node v8.17.0
version: master
endpointsharetweet
const Dataloader = require('dataloader'); const delay = (x, t = 1500) => new Promise(r => setTimeout(() => { r(x); console.log('loaded '+x); }, t) ); const map = new Map(); const dataloader1 = new Dataloader(keys => Promise.all(keys.map(key => delay(key))), { cacheMap: map }); // either: map.set('bip', Promise.resolve('fake bip')); // put a key in the cache, at any time // or: // dataloader1.prime('bip', 'fake bip'); const dataloader2 = new Dataloader(keys => Promise.all(keys.map(key => delay(key, 150))), { cacheMap: map }); dataloader1.loadMany(['foo', 'bip', 'bar', 'foo']).then(res => console.log(1 + ' ' + res)); setTimeout(() => { dataloader2.loadMany(['foo', 'bip']).then(res => console.log(2 + ' ' + res)); dataloader1.loadMany(['bip', 'bar']).then(res => console.log(3 + ' ' + res)); }, 20); 'go';
Loading…

no comments

    sign in to comment