【问题标题】:Returning value from event从事件返回值
【发布时间】:2020-07-25 13:23:52
【问题描述】:

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

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

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

有了这个实现,我得到了未定义,我该如何修复它?

【问题讨论】:

    标签: javascript node.js dom-events puppeteer


    【解决方案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);

    【讨论】:

    • 我想准确地返回主函数的结果作为这两个事件的第一个输出
    • 您的示例中没有足够的信息来说明您在做什么、主要功能在哪里等...
    猜你喜欢
    • 2013-11-09
    • 1970-01-01
    • 2013-01-06
    • 2015-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多