JavaScript Promise разрешает «неопределенный» в Chrome / Edge / и т. Д., Но отлично работает в Firefox - PullRequest
0 голосов
/ 17 мая 2018

Так что я использую следующую функцию:

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, но не в любом другом браузере?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...