当我运行以下代码时,立即打开 150 个浏览器进行 google.com。如何让循环等到函数完成再打开谷歌?
const {
Builder, By, Key, until
} = require('selenium-webdriver');
require('chromedriver');
for (let index = 0; index < 150; index++) {
(async function example() {
let driver = await new Builder().forBrowser('chrome').build();
try {
await driver.get('https://www.google.com/');
} catch(err) {
console.log(err);
} finally {
await driver.quit();
}
})();
}
我尝试使用以下帖子中的代码,但没有运气: JavaScript, Node.js: Array.forEach 是异步的吗?, 将 async/await 与 forEach 循环一起使用, 在 for Each 内部进行异步调用。
提前感谢您的任何帮助或信息。
仅声明和执行async
函数不会自动使线程等待函数执行 - 您还必须await
它,否则它被简单地解释为声明的承诺。
(async () => {
for (let index = 0; index < 150; index++) {
await (async function example() {
let driver = await new Builder().forBrowser('chrome').build();
try {
await driver.get('https://www.google.com/');
} catch(err) {
console.log(err);
} finally {
await driver.quit();
}
})();
}
})();