1
0
mirror of https://github.com/lrsjng/h5ai.git synced 2025-08-11 16:34:01 +02:00

Turn onReady/Load into promised code.

This commit is contained in:
Lars Jung
2016-08-12 12:28:56 +02:00
parent 00232389ad
commit 85ddff9c2d
4 changed files with 20 additions and 14 deletions

View File

@@ -1,4 +1,4 @@
const {dom, onLoad} = require('../util'); const {dom, awaitLoad} = require('../util');
const event = require('../core/event'); const event = require('../core/event');
const allsettings = require('../core/settings'); const allsettings = require('../core/settings');
@@ -21,7 +21,7 @@ const init = () => {
let piwikTracker = null; let piwikTracker = null;
dom('<script></script>').attr('src', pkBaseURL + 'piwik.js').appTo('body'); dom('<script></script>').attr('src', pkBaseURL + 'piwik.js').appTo('body');
onLoad(() => { awaitLoad().then(() => {
piwikTracker = win.Piwik && win.Piwik.getTracker(pkBaseURL + 'piwik.php', settings.idSite); piwikTracker = win.Piwik && win.Piwik.getTracker(pkBaseURL + 'piwik.php', settings.idSite);
if (piwikTracker) { if (piwikTracker) {
piwikTracker.enableLinkTracking(); piwikTracker.enableLinkTracking();

View File

@@ -1,4 +1,4 @@
const {dom, onReady} = require('./util'); const {dom, awaitReady} = require('./util');
const config = require('./config'); const config = require('./config');
const name = dom('script[data-module]').attr('data-module'); const name = dom('script[data-module]').attr('data-module');
@@ -18,4 +18,6 @@ if (name === 'index') {
throw new Error(`no-main-module: '${name}'`); throw new Error(`no-main-module: '${name}'`);
} }
config._update(query).then(() => onReady(() => require(`./main/${name}`))); config._update(query)
.then(() => awaitReady())
.then(() => require(`./main/${name}`));

View File

@@ -1,6 +1,5 @@
const location = require('../core/location');
require('../view/viewmode'); require('../view/viewmode');
require('../ext/autorefresh'); require('../ext/autorefresh');
require('../ext/contextmenu'); require('../ext/contextmenu');
require('../ext/crumb'); require('../ext/crumb');
@@ -19,4 +18,5 @@ require('../ext/thumbnails');
require('../ext/title'); require('../ext/title');
require('../ext/tree'); require('../ext/tree');
location.setLocation(global.window.document.location.href, true); const href = global.window.document.location.href;
require('../core/location').setLocation(href, true);

View File

@@ -48,15 +48,19 @@ const isElDocWin = x => isElement(x) || isDocument(x) || isWindow(x);
const addListener = (el, type, fn) => el.addEventListener(type, fn); const addListener = (el, type, fn) => el.addEventListener(type, fn);
const removeListener = (el, type, fn) => el.removeEventListener(type, fn); const removeListener = (el, type, fn) => el.removeEventListener(type, fn);
const onReady = fn => { const readyPromise = new Promise(resolve => {
if (/^(i|c|loade)/.test(doc.readyState)) { if (/^(i|c|loade)/.test(doc.readyState)) {
fn(); resolve();
} else { } else {
addListener(doc, 'DOMContentLoaded', fn); addListener(doc, 'DOMContentLoaded', () => resolve());
} }
}; });
const awaitReady = () => readyPromise;
const onLoad = fn => addListener(win, 'load', fn); const loadPromise = new Promise(resolve => {
addListener(win, 'load', () => resolve());
});
const awaitLoad = () => loadPromise;
const dom = arg => { const dom = arg => {
if (isInstanceOf(arg, dom)) { if (isInstanceOf(arg, dom)) {
@@ -267,7 +271,7 @@ dom.prototype = {
}; };
module.exports = { module.exports = {
onReady, awaitReady,
onLoad, awaitLoad,
dom dom
}; };