Я пытаюсь объявить и инициализировать переменную const с глобальной областью действия для модуля, и она должна получить значение из результата асинхронного / ожидающего. Вот код, который я пробовал, и переменная по-прежнему содержит неопределенное значение. Как я могу переписать это так, чтобы я все еще мог использовать константу, и она содержит желаемое значение:
const puppet = require('puppeteer')
const browser = (async () => { await puppet.launch() })();
const page = (async () => { await browser.newPage() })();
console.log( "browser holds: " + util.inspect(page) );
// prints out undefined
Мне нужно настроить две отдельные страницы, которые будут использоваться в приложении для загрузки разных страниц и обработки их по мере необходимости.
На данный момент я могу сделать это, объявив переменные как 'var', а затем присвоив значение в .then (). Но я бы предпочел использовать для этого «const» как лучшую практику.
Вот код, который позволяет мне делать это как переменную и использовать ее в приложении:
const puppet = require('puppeteer')
async function setupNewPuppetWithKeys(puppetBrowser, puppetPage ){
let browser = await puppet.launch();
let page = await browser.newPage();
page.setViewport({ width: 1280, height: 800 });
logger.infoLog("initialized values for - " + puppetBrowser + ", " + puppetPage )
return { [puppetBrowser] : browser , [puppetPage] : page };
}
var browserDev, pageDev;
setupNewPuppetWithKeys("browserDev", "pageDeV").then( (jsonResult) => {
logger.infoLog("In Then received : " + util.inspect(jsonResult) );
browserDev = jsonResult.browserDev;
pageDev = jsonResult.pageDev;
} );
// I declare more browser and page variables here .. but you get the idea with the one I've done above.