Я пытаюсь прочитать значения памяти браузера из Protractor и хранить их в глобальном объекте. Для этого я получаю объект window.performance.memory, а затем разрешаю обещание проверить каждое из значений памяти.Назначьте значение, возвращенное из обещания, к глобальной переменной
Проблема заключается в том, что я не могу присвоить значение глобальной переменной. Я попытался следующий код, который, кажется, не работает достаточно хорошо:
this.measureMemory = function() {
var HeapSizeLimit;
browser.driver.executeScript(function() {
return window.performance.memory;
}).then(function (memoryValues) {
HeapSizeLimit = memoryValues.jsHeapSizeLimit;
console.log('Variable within the promise: ' + HeapSizeLimit);
});
console.log('Variable outside the promise: ' + HeapSizeLimit);
};
Это возвращает:
Variable outside the promise: undefined
Variable within the promise: 750780416
Вы, безусловно, * можете * присваивать значение за пределами обещания в функции 'then', но вы не можете установить его до * в хронологическом порядке после того, как функция' then' действительно будет выполняться. – apsillers
Спасибо @psillers. Это объяснение было очень полезно для понимания проблемы. – Tedi