getitems-generic.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import { getItemKeyValue } from './utils';
  2. export function getItemsGeneric(keys/*, callback*/) {
  3. var localforageInstance = this;
  4. var promise = new Promise(function(resolve, reject) {
  5. var itemPromises = [];
  6. for (var i = 0, len = keys.length; i < len; i++) {
  7. itemPromises.push(getItemKeyValue.call(localforageInstance, keys[i]));
  8. }
  9. Promise.all(itemPromises).then(function(keyValuePairs) {
  10. var result = {};
  11. for (var i = 0, len = keyValuePairs.length; i < len; i++) {
  12. var keyValuePair = keyValuePairs[i];
  13. result[keyValuePair.key] = keyValuePair.value;
  14. }
  15. resolve(result);
  16. }).catch(reject);
  17. });
  18. return promise;
  19. }
  20. export function getAllItemsUsingKeys() {
  21. var localforageInstance = this;
  22. return localforageInstance.keys().then(function(keys){
  23. return localforageInstance.getItems(keys);
  24. });
  25. }
  26. export function getAllItemsUsingKeysParallel() {
  27. var localforageInstance = this;
  28. return localforageInstance.keys().then(function(keys){
  29. var itemPromises = [];
  30. for (var i = 0, len = keys.length; i < len; i++) {
  31. itemPromises.push(localforageInstance.getItem(keys[i]));
  32. }
  33. return Promise.all(itemPromises);
  34. });
  35. }
  36. export function getAllItemsUsingIterate() {
  37. var localforageInstance = this;
  38. var accumulator = {};
  39. return localforageInstance.iterate(function(value, key/*, iterationNumber*/) {
  40. accumulator[key] = value;
  41. }).then(function() {
  42. return accumulator;
  43. });
  44. }