Так что я использую следующую функцию:
function hideDetails(table) {
let promise = new Promise((resolve, reject)=> {
if ( countSelected(table) == "multiple" || countSelected(table) == "none") {
document.getElementById( 'details' ).style.display = 'none';
document.getElementById( 'configDetailsWrap' ).style.display = 'none';
document.getElementById( 'list' ).style.display = 'none';
document.getElementById( 'list_2' ).style.display = 'none';
resolve();
}
else {
document.getElementById( 'details' ).style.display = 'block';
resolve();
}
})
return promise;
}
который вызывается так:
hideDetails(table).then(function() {
let item = $('#details');
let position = item.position();
window.scrollTo(0, position.top);
},
function() {
console.log('Error while displaying details.')
});
Это прекрасно работает в Firefox, но во всех других браузерах, которые я пробовал (Chrome, Opera, Edge, Safari), я получаю консольную ошибку, подобную следующей:
Edge: «Невозможно получить свойство then» с неопределенной или нулевой ссылкой »
Chrome: "Невозможно прочитать свойство 'then' из неопределенного"
Я не понимаю этого. Как выполнить обещание в Firefox, но не в любом другом браузере?