framework7
Version:
Full featured mobile HTML framework for building iOS & Android apps
28 lines (25 loc) • 666 B
JavaScript
export default function asyncComponent(router, component, resolve, reject) {
function resolvePromise(componentPromise) {
componentPromise.then(function (c) {
// eslint-disable-next-line
resolve({
component: c.default || c._default || c
});
}).catch(function (err) {
reject();
throw new Error(err);
});
}
if (component instanceof Promise) {
resolvePromise(component);
return;
}
var asyncComponentResult = component.call(router);
if (asyncComponentResult instanceof Promise) {
resolvePromise(asyncComponentResult);
} else {
resolve({
component: asyncComponentResult
});
}
}