Joe*_*its 0 javascript debugging node.js socket.io angularjs
我正在开发一个测验应用程序.我有一个让我忙碌4小时的小虫.我想在我的应用程序中使用socketIO.玩家可以将他们的答案发布到测验大师.测验大师可以在他的个人页面上查看它们.问题是,当我作为播放器提交答案时,测验主控方的socket.on()会触发两次.
从数据库中获取答案然后从socket中获取答案(我认为这就是问题所在):
$http.get('/api/antwoorden/' + $scope.linkHash)
.success(function (data) {
$scope.answers = data.doc.ingezonden;
console.log("****GEZONDEN VAN DATABASE****", $scope.answers)
var i = 0;
socketIO.on('answerSend', function (object) {
i = i + 1;
console.log(i);
if(object.uitvoering === $scope.myCode) {
$scope.answers.push(object.answer);
console.log("***", object);
}
console.log("*****NU IS DIE DIT*****", $scope.answers);
});
});
Run Code Online (Sandbox Code Playgroud)
控制台输出
每次运行时$http.get
,您都要添加此事件处理程序的新副本:
socketIO.on('answerSend', function (object) ...
Run Code Online (Sandbox Code Playgroud)
因此,运行两次后,您将拥有双事件处理程序.运行三次后,三重事件处理程序等等.您需要确保只添加一次事件处理程序.
我不知道你的代码的整体结构,但我猜你想在http响应代码之外添加事件处理程序,所以它只添加一次.
归档时间: |
|
查看次数: |
48 次 |
最近记录: |