gpt4 book ai didi

javascript - 如何在全局范围内创建 async/await

转载 作者:行者123 更新时间:2023-12-01 04:40:45 24 4
gpt4 key购买 nike

我想使用一个全局变量,它有一个等待,像这样:

(async () => {
const browser = await puppeteer.launch({headless: false})
const page = await browser.newPage();
})()

然后在我的所有功能上使用它:
async function login() {

await page.goto(urls.login);
await page.type('#username', user);
await page.type('#password', pw);
page.click('[type="submit"]');
await page.waitForNavigation();

}

运行它我得到这个错误:

ReferenceError: page is not defined.



有什么方法可以让它工作吗?

最佳答案

将 promise 存储在全局变量中:

const pagePromise = (async () => {
const browser = await puppeteer.launch({headless: false})
return browser.newPage();
})();

然后你可以稍后使用它
async function login(page) {
await page.goto(urls.login);
await page.type('#username', user);
await page.type('#password', pw);
page.click('[type="submit"]');
await page.waitForNavigation();
}
pagePromise.then(login).catch(console.error);

或者
async function login() {
const page = await pagePromise;
await page.goto(urls.login);
await page.type('#username', user);
await page.type('#password', pw);
page.click('[type="submit"]');
await page.waitForNavigation();
}
login().catch(console.error);

关于javascript - 如何在全局范围内创建 async/await,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50425320/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com