Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 节点js将参数传递给函数_Javascript_Node.js_Event Handling_Dom Events_Telegram Api - Fatal编程技术网

Javascript 节点js将参数传递给函数

Javascript 节点js将参数传递给函数,javascript,node.js,event-handling,dom-events,telegram-api,Javascript,Node.js,Event Handling,Dom Events,Telegram Api,我有以下代码: const { Logger } = require ("telegram/extensions"); const { TelegramClient } = require ("telegram"); const { StringSession } = require ("telegram/sessions"); const { NewMessage } = require ("telegram/events&

我有以下代码:

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
中“未定义”


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

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

client.addEventHandler(
(事件)=>eventHandler(事件、浏览器),
新消息({}),
);

谢谢。“event”变量实际上并不存在,我不明白不写它是如何传递的。我尝试了你的建议,但是我在第二行有:“ReferenceError:event未定义”。但是你真的需要
event
变量吗?你可以只做
()=>事件处理程序(浏览器,测试)
,不是吗?是的,我需要它。在事件中有一个“event.message”,其中所有新消息的信息都发布在了telegrammm上,实际上这很奇怪,因为读取repo的源代码时,回调函数应该用一个事件作为参数调用。。。请参阅
客户端。addEventHandler
在第一个参数中接受回调函数。然后它会像
回调(事件)
一样调用它。(因此您的代码是正确的,减去addEventHandler arg中的浏览器)