Node js 将参数传递给函数

问题描述

我有这个代码

const { Logger } = require ("telegram/extensions");
const { TelegramClient } = require ("telegram");
const { StringSession } = require ("telegram/sessions");
const { NewMessage } = require ("telegram/events");
const { NewMessageEvent } = require ("telegram/events/NewMessage");
const { Message } = require ("telegram/tl/custom/message");
const input = require('input'); // npm i input
const puppeteer = require('puppeteer-extra');


async function eventHandler(event,browser) {
    //get event.message,....
    const page = await browser.newPage();

}


const client = new TelegramClient(
  new StringSession(stringSession),apiId,apiHash,{ connectionRetries: 5 }
);


(async () => {
  console.log('Loading interactive example...')
  const browser = await puppeteer.launch({args: ['--no-sandBox','--disable-setuid-sandBox','--disable-dev-shm-usage','--shm-size=2gb','--start-maximized','--disable-features=IsolateOrigins,site-per-process','--disable-web-security'],headless: true});
  await client.start({
      phoneNumber: "+33...",password: async () => await input.text('password?'),phoneCode: async () => await input.text('Code ?'),onError: (err) => console.log(err),});
  console.log('Telegram bot connected');
  console.log(client.session.save());
  client.addEventHandler(eventHandler,new NewMessage({}),browser);

})();

我想将浏览器变量传递给 eventHandler 函数。 我尝试这样做,但它不起作用,浏览器在 eventHandler 中“未定义”。

如何将浏览器变量传递给我的 eventHandler

解决方法

不确定 client.addEventHandler 的签名是什么,但假设它只需要一个参数 event,您可以尝试用以下内容替换最后一行:

client.addEventHandler(
  (event) => eventHandler(event,browser),new NewMessage({}),);

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...