-
-
Save thgreasi/01f6460f35bf49213c0e to your computer and use it in GitHub Desktop.
Revisions
-
thgreasi revised this gist
Aug 7, 2015 . 2 changed files with 21 additions and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,8 +1,8 @@ async function setDriver(driverNames) { for (var driverName of driverNames) { if (this.supports(driverName) { try { let driver = await this.getDriver(driverName).then(driver => driver._initDriver()); if (driver) { return Promise.resolve(driver); } This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,19 @@ new Promise((resolve, reject) => { runGeneratorOnce(myPromiseGenerator, initialValue); function runGeneratorOnce(pg, result) { var status = pg.next(result); if (status.done) { reject('No driver'); return; } status.value.then(resolve).catch(value => { return runGeneratorOnce(pg, value); }); } function* myPromiseGenerator() { for (var i = 0, len = drivers.length; i < len; i++) { if (localforage.supports(driver)) { yield localforage.setDriver(driver); } } } }); -
thgreasi revised this gist
Aug 7, 2015 . 1 changed file with 13 additions and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,13 @@ async function setDriver(driverNames) { for (var driverName of driverNames) { if (this.support(driverName) { try { let driver = await this.getDriver(driverName); if (driver) { return Promise.resolve(driver); } } catch (e) { } } } return Promise.reject('No supported driver found!'); } -
thgreasi renamed this gist
Aug 7, 2015 . 1 changed file with 0 additions and 0 deletions.There are no files selected for viewing
File renamed without changes. -
thgreasi created this gist
Aug 7, 2015 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,20 @@ 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'); } });