Javascript:如何在不同线程中运行异步函数?

Javascript:如何在不同线程中运行异步函数?,javascript,async-await,Javascript,Async Await,我有一个异步函数,它在我的js代码中返回一个承诺,如下所示 async launch(){ return new Promise (function(resolve, reject){ let opts = { headless: false, defaultViewport: null, args: ['--start-maximized'], slowMo: 1, timeout: 10000 }; pu

我有一个异步函数,它在我的js代码中返回一个承诺,如下所示

async launch(){
  return new Promise (function(resolve, reject){
    let opts = {
      headless: false,
      defaultViewport: null,
      args: ['--start-maximized'],
      slowMo: 1,
      timeout: 10000
    };
    puppeteer
      .launch(opts)
      .then(function (browser) {    
        resolve(browser);
      });
  });
}
它使用Puppeter启动一个新的浏览器页面

用法:
所以我想在不同的线程中同时启动5个浏览器。我该怎么做呢?

你可以用
承诺等待
多个
承诺。见下例:

函数执行任务(消息,超时){
返回新承诺(解决=>{
设置超时(()=>{
log(`Completed${message}`);
},超时);
});
}
(异步()=>{
常量所有任务=[
performTask('first',500),
性能任务(“秒”,100),
性能任务(“第三个”,200),
];
等待承诺。所有(所有任务);

})();我认为提供的详细信息不够。如果没有线程,您能详细说明问题的细节吗javascript@Harish如果你不知道的话,你可以从谷歌上搜索Puppeter框架,我也不能具体帮助你,因为我不明白你不明白的是什么。我听说为了提供线程机制,他们使用setTimeout函数,但我由于等待错误,我没有这样做@Jaromandax感谢您的响应,但当我尝试您的解决方案时,它返回“wait仅在异步函数中有效”错误,但我已从Promise函数的开头删除了“wait”,而不是完成。谢谢:)我想我读到Chrome现在支持顶级的
wait
(),但其他浏览器可能不支持。我只是在Chrome浏览器上运行它,所以我认为这不是问题。如果你需要在
承诺之后执行某些东西。所有的
,你可以将它包装在一个自动执行函数中。i、 e.
(async()=>{/*带wait*/}的代码)
。。。或者使用老式的
promise.then()
var browserLauncher = new BrowserLauncher();
var browser = await browserLauncher.launch();
var page = await browser.newPage();