私は、プロトラクターからブラウザのメモリ値を読み込み、それらをグローバルオブジェクトに格納しようとしています。これを行うために、私は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'関数が実際に実行された後に*時間順に設定することはできません。 – apsillers
おかげさまで@apillers。この説明は、問題の内容を理解するのに非常に役立ちました。 – Tedi