Внутри улова обещания
.catch((message) => {
console.info(message)
var newUrl = url
chrome.tabs.create({url: newUrl}, function(response) {
console.info(response.status)
status = 'loading'
while (status == 'loading') {
setTimeout(function() {
console.info(response.status)
status = response.status
}, 3000)
}
})
})
Я пытаюсь написать улов так, чтобы он открывал новую страницу, ждал, пока она загрузится, а затем брал новые файлы cookie.
Я чувствую, что принимаю сумасшедшие таблетки, так как это кажется очень прямолинейным. Однако его никогда не распечатывают response.status
Я хочу, чтобы он ждал проверки response.status
каждые 3 секунды, и как только на странице появится loaded
, цикл завершится.
Что я делаю неправильно?
ооооо, я не привык к Javascript .... это имеет смысл
Возможный дубликат Метод setTimeout() внутри цикла while
То, как вы написали это, вы создали бесконечный цикл, который поместит тонны setTimeout
в очередь событий браузера.
setTimeout
также поместил код туда, но он ставит его с задержкой «3 секунды плюс».
На практике вы говорите своему браузеру - установите для меня бесконечные тайм-ауты, а после его завершения сделайте console.info через 3 секунды. Этого не произойдет.
Вместо этого вам, вероятно, следует использовать setInterval
Наверное это->stackoverflow.com/a/37728255/909535 ?