【发布时间】:2021-12-17 23:18:58
【问题描述】:
我一直试图让我的应用程序在每次收到 Pusher 响应时获取新数据,但现在的问题是,对于每个新响应,响应计数似乎高 1,因此它是 fetch 调用。 . 例如,当我收到 Pusher 响应时第一次请求新数据时,我调用我的 API 1 次,第二次收到 2 个 Pusher 响应,然后是 3 次,依此类推,这大大降低了我的性能...... 谁能向我解释一下似乎是什么问题?
useEffect(() => {
//Pusher.logToConsole = true;
var pusher = new Pusher("pusherID", {
cluster: "eu",
});
const channel = pusher.subscribe("pusher-channel");
channel.bind("", function (data) {
console.log(data); //log pusher response so I know how many are received
mutate("data"); //fetch data from API
});
});
如果我检查我的 Pusher 仪表板,我已经建立了很多连接并发送了消息,而我只使用一台设备来执行此操作,因此这可能意味着这台设备正在多次连接并发送多条消息,这真的很糟糕。 ..
【问题讨论】:
-
那么你希望 useEffect 只运行一次还是你想基于依赖运行 useEffect?