从事件返回值

Returning value from event

我正在用 node 和 puppeteer 创建一个小项目,但这没关系。

重要的是我想 return 一个函数的值(下面的代码块是一个异步函数)。 第一个事件总是发生在第二个事件之前,我想 return 这些事件发出的前两个值

  client.on('Network.webSocketCreated', ({ url }) => {
    const serverUrl = url
  })

  client.once('Network.webSocketFrameSent', ({ response }) => {
    const credentials = JSON.parse(JSON.parse(response.payloadData)[0])
    return [credentials, serverUrl]
  })

有了这个实现,我得到了未定义,我该如何解决?

好吧,这是快速而草稿的方式

  // Set it in parent scope
  let serverUrl;
  
  // This event firs
  client.on('Network.webSocketCreated', ({ url }) => {
    // Assign
    serverUrl = url
  })

  client.once('Network.webSocketFrameSent', ({ response }) => {
    const credentials = JSON.parse(JSON.parse(response.payloadData)[0])
    // Use
    return [credentials, serverUrl]
  })

但请记住,现在您正试图 return 在事件函数中赋值。这不是你想要的我想。相反,您可以调用一些函数,将这两个参数作为参数传递:myFunction(credentials, serverUrl);