NodeJs + NickJs:在异步函数中进行同步调用

时间:2017-12-05 21:46:30

标签: javascript node.js asynchronous synchronous

我使用NickJs制作WebRequests。在大多数情况下,NickJs做我需要的(打开浏览器,导航等)。但是,在继续执行代码之前,我需要对另一个服务进行同步调用(自定义WebRequest)。

我无法弄清楚如何正确地使这个调用同步。我当前的设置使用包含在异步功能中的NickJs并使用' await'等待WebRequest返回。

我不认为我可以将它用于我的自定义请求,但我觉得我应该能够创建自己的函数并等待WebRequest完成,然后再继续执行代码。

示例:

const nick = new Nick({
  printNavigation: false,
  printResourceErrors: true,
  printPageErrors: true,
  resourceTimeout: 10000,
  userAgent: "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36",
})

    ; (async () => {

    await tab.open("https://google.com")

    //custom function here to request another webpage from another service
    //and wait for the result before moving on to next await call

    //Continue on as normal with code
    await tab.open("https://google.com")

    })()
    .then(() => {
      console.log("Hooray!")
      nick.exit()
    })
    .catch((err) => {
      console.log(`Boo!: ${err}`)
      nick.exit(1)
    })

0 个答案:

没有答案