提问者:小点点

从事件返回值


我正在创建一个小项目与节点和木偶,但这并不重要。

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

  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]
  })

在这个实现中,我得到了未定义,我如何修复它呢?


共1个答案

匿名用户

嗯,这是快速和吃水的方式

  // 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]
  })

但是请记住,现在您试图返回事件函数内部的值。 我想这不是你想要的。 相反,您可以调用以下两个参数作为参数传递的函数:myfunction(credentials,serverUrl);