Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.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 API调用期间的NodeJs MaxListenerSexceedAwarning_Javascript_Node.js_Arrays_Puppeteer - Fatal编程技术网

Javascript API调用期间的NodeJs MaxListenerSexceedAwarning

Javascript API调用期间的NodeJs MaxListenerSexceedAwarning,javascript,node.js,arrays,puppeteer,Javascript,Node.js,Arrays,Puppeteer,我正在用wind数据填充一个数组(从API JSON中刮取),但我得到了一个MaxListenerSexceedAdwarning错误。我已经查过了,似乎是因为代码中有个bug。解决方法是设置setMaxListeners(n),但显然不建议这样做 有人能看到是什么导致这么多听众注册吗?解决办法是什么?我正在创建一个API,它可以在请求时吐出数组windRecordings 代码 const getWindForecast=(windRecordings)=>{ 设置间隔(()=>{ const

我正在用wind数据填充一个数组(从API JSON中刮取),但我得到了一个
MaxListenerSexceedAdwarning
错误。我已经查过了,似乎是因为代码中有个bug。解决方法是设置
setMaxListeners(n),但显然不建议这样做

有人能看到是什么导致这么多听众注册吗?解决办法是什么?我正在创建一个API,它可以在请求时吐出数组
windRecordings

代码

const getWindForecast=(windRecordings)=>{
设置间隔(()=>{
const instantWind=scrapapi(
"http://mobvaer.kystverket.no/v2/api/stations/5265049"
);
instantWind.then((res)=>{
如果(windRecordings.length>0){
//已将风值推送到列表中
const latestRecordedWind=windRecordings[windRecordings.length-1];//取出第一个元素
//将列表中的lates wind值与lates API请求wind值进行比较
如果(
latestRecordedWind[1][“值”][“值”]==res[1][“值”][“值”]
) {
console.log(“它们是相同的”);
}否则{
log(“它们不一样,推送它们。”)
windRecordings.推送(res);
}
}否则{
//长度小于0,到目前为止尚未添加任何元素,请推送元素
log(“将第一个推到列表中”);
windRecordings.推送(res);
}
});
归还录音;
}, 1000);
};
错误

MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 exit listeners added to [process]. Use emitter.setMaxListeners() to increase limit
(node:85830) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 SIGINT listeners added to [process]. Use emitter.setMaxListeners() to increase limit
(node:85830) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 SIGTERM listeners added to [process]. Use emitter.setMaxListeners() to increase limit
(node:85830) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 SIGHUP listeners added to [process]. Use emitter.setMaxListeners() to increase limit
scrapeAPI函数

const puppeteer = require("puppeteer");

const scrapeAPI = async (url) => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto(url);
  var content = await page.content();
  innerText = await page.evaluate(() => {
    return JSON.parse(document.querySelector("body").innerText);
  });

  const instantWind = innerText["Instantaneous"];
  return instantWind;
};


干杯

您每秒启动一个新的浏览器实例,但不关闭它们

您的代码执行以下操作:

  setInterval(() => {
    //const instantWind = scrapeAPI();
...
  const browser = await puppeteer.launch();
...
  }, 1000);
您需要重新使用浏览器实例或至少关闭它们:

const scrapeAPI = async (url) => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto(url);
  var content = await page.content();
  innerText = await page.evaluate(() => {
    return JSON.parse(document.querySelector("body").innerText);
  });

  const instantWind = innerText["Instantaneous"];
await browser.close();
  return instantWind;
};