我具有实时功能。这是聊天。因此,每当收到一条新消息时,我都要计算该数字。我所做的是:
onNewMessage: message => {
const isCheck = message.sender.id === '{{Auth::user()->name}}{{Auth::id()}}'
const count = message.roomId === v.id;
var i = 0;
if(count == true) {
$('.badge-color.'+message.senderId).html('');
b = i+1;
console.log(`This is new ${b}`);
i = b;
$('.badge-color.'+message.senderId).append(b);
}
console.log(`This is new ${i}`);
console.log(`Outside : ${i}`);
}
我接受了一个变量i并将其等于0。然后,每当有消息到达时,我都想添加它。因此,我将b作为结果并等于i = b,以便下次消息到达时i = 1而不是0,因此它将b设为2,依此类推。但是它不起作用,它不断给1。
有人可以帮忙吗?
答案 0 :(得分:0)
该代码看起来有效,我会说。那是真实的代码,还是您将它们存储在对象中?
尝试使用b = ++ i,如果可以,请告诉我。
//编辑后编辑:
nvm,您的i是在您收到消息时创建的。修补程序是使用全局i,但我不建议使用全局变量。您可以将其存储在一个对象中,例如:
//init object:
let obj = { counter: 0 };
//incrementing it when you have to:
obj.counter++;
//编辑:
问题是,您还可以全局初始化变量,但这与方法一没什么不同。但是,您可以将其存储在一些用户变量中。我不知道Auth :: user()服务是什么,但也许可以将其存储在:Auth :: user()-> counter(在首次从数据库中初始化或加载时将其设置为0,并在收到消息时进行计数)