【发布时间】:2017-04-30 08:14:53
【问题描述】:
我一直在阅读类似的主题,但我并没有真正得到他们的解决方案。我已经读过这种行为的原因是如果您正在重新注册一个新的事件处理程序。在我的代码中,我不确定要在哪一部分重新注册一个新的事件处理程序。
服务器
socket.on('test', function (data) {
socket.emit('test2', data);
});
客户
save() {
app.io.emit('test', { hello: 'world' });
app.io.on('test2', (res)=>{
if(Object.keys(res).length > 0) {
console.log(res);
}
})
}
render() {
return (
<View style={styles.container}>
<Button title='Save' onPress={this.save}></Button>
</View>
);
}
这里的问题是,当我点击 SAVE 按钮时,函数app.io.on 抛出的返回次数不断增加。
例如:
第一次点击返回一次 第二次点击返回两次 第三次点击返回 3x
有没有办法防止这种情况发生,就像它应该只返回一次一样?提前致谢。
【问题讨论】: