Remove nested Promise

This commit is contained in:
Dmitry Lyzo 2020-09-02 01:06:07 +03:00
parent eccaad366e
commit 748592fa93

View File

@ -36,54 +36,56 @@ import 'css!components/viewManager/viewContainer';
const newViewInfo = normalizeNewView(options, isPluginpage);
const newView = newViewInfo.elem;
return new Promise((resolve) => {
const currentPage = allPages[pageIndex];
const currentPage = allPages[pageIndex];
if (currentPage) {
triggerDestroy(currentPage);
}
if (currentPage) {
triggerDestroy(currentPage);
}
let view = newView;
let view = newView;
if (typeof view == 'string') {
view = document.createElement('div');
view.innerHTML = newView;
}
if (typeof view == 'string') {
view = document.createElement('div');
view.innerHTML = newView;
}
view.classList.add('mainAnimatedPage');
view.classList.add('mainAnimatedPage');
if (currentPage) {
if (newViewInfo.hasScript && window.$) {
mainAnimatedPages.removeChild(currentPage);
view = $(view).appendTo(mainAnimatedPages)[0];
} else {
mainAnimatedPages.replaceChild(view, currentPage);
}
if (currentPage) {
if (newViewInfo.hasScript && window.$) {
mainAnimatedPages.removeChild(currentPage);
view = $(view).appendTo(mainAnimatedPages)[0];
} else {
if (newViewInfo.hasScript && window.$) {
view = $(view).appendTo(mainAnimatedPages)[0];
} else {
mainAnimatedPages.appendChild(view);
}
mainAnimatedPages.replaceChild(view, currentPage);
}
if (options.type) {
view.setAttribute('data-type', options.type);
} else {
if (newViewInfo.hasScript && window.$) {
view = $(view).appendTo(mainAnimatedPages)[0];
} else {
mainAnimatedPages.appendChild(view);
}
}
const properties = [];
if (options.type) {
view.setAttribute('data-type', options.type);
}
if (options.fullscreen) {
properties.push('fullscreen');
}
const properties = [];
if (properties.length) {
view.setAttribute('data-properties', properties.join(','));
}
if (options.fullscreen) {
properties.push('fullscreen');
}
allPages[pageIndex] = view;
if (properties.length) {
view.setAttribute('data-properties', properties.join(','));
}
allPages[pageIndex] = view;
return setControllerClass(view, options)
// Timeout for polyfilled CustomElements (webOS 1.2)
setControllerClass(view, options).then(() => new Promise((resolve) => setTimeout(resolve, 0))).then(() => {
.then(() => new Promise((resolve) => setTimeout(resolve, 0)))
.then(() => {
if (onBeforeChange) {
onBeforeChange(view, false, options);
}
@ -101,9 +103,8 @@ import 'css!components/viewManager/viewContainer';
$.mobile.activePage = view;
}
resolve(view);
return view;
});
});
}
}