Skip to content

Instantly share code, notes, and snippets.

@thgreasi
Last active August 29, 2015 14:26
Show Gist options
  • Select an option

  • Save thgreasi/01f6460f35bf49213c0e to your computer and use it in GitHub Desktop.

Select an option

Save thgreasi/01f6460f35bf49213c0e to your computer and use it in GitHub Desktop.
LocalForage setDriver Looper
var localForageDriverOrder = [localforage.INDEXEDDB, localforage.LOCALSTORAGE, localforage.WEBSQL];
var setDriverPromise = new Promise(function(resolve, reject) {
var drivers = localForageDriverOrder.slice();
var crntDriverPromise = Promise.resolve();
crntDriverPromise.then(driversPromiseLoop);
function driversPromiseLoop(){
var driver = null;
while (driver = drivers.shift()) {
if (localforage.supports(driver)) {
crntDriverPromise = localforage.setDriver(driver);
return crntDriverPromise.then(function(){
resolve();
}).catch(driversPromiseLoop);
}
}
reject('No driver');
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment