我有一个用 JS 和 socket.io 编写的多用户聊天网页。
许多用户可以同时发送消息,当我收到消息时,我需要运行一个更改 DIV 的innerHTML 的函数。
但是,假设有 1000 条消息同时发送,我想依次运行该函数,一次又一次。
即,在最后一次调用完成之前,不要对该函数运行另一个调用。(并且该函数内的全局变量不会被同一函数的另一个调用更改,直到当前调用完成)
例如(我使用计时器而不是socket.io事件编写了以下示例,因为它很容易理解)
下面是 JavaScript:
var gInteger = 0;
var gbolChanging = false;
function changeInteger (intChange) {
if (!gbolChanging) {
gbolChanging = true;
gInteger += intChange;
divInteger.innerHTML = gInteger;
gbolChanging = false;
}
}
var timer1 = setInterval(changeInteger, 1, 1);
var timer2 = setInterval(changeInteger, 1, -1);
Run Code Online (Sandbox Code Playgroud)
<div id="divInteger">
</div>
Run Code Online (Sandbox Code Playgroud)
以上是 HTML:
上述html和js的预期结果是:
您应该只看到 0 或 1
实际结果是:
如果运行该程序足够长的时间,您也可能会看到 -1 和 2。(即两个定时器同时检测到bolChanging = false)
我用?
print('Pls. show this line only');
Run Code Online (Sandbox Code Playgroud)
调试由Android Studio开发的flutter应用程序。但是,[运行选项卡]中的输出通常类似于:
Tens/Hundreds of system debug messages
I/flutter ( 9154): Pls. show this line only
Tens/Hundreds of system debug messages
Run Code Online (Sandbox Code Playgroud)
好的,有时候我要花几分钟才能找到自己的调试消息[请 仅显示此行]。
我的问题很简单,我们如何在Android Studio的Flutter Project的“运行”选项卡中禁用[数十个/数百个系统调试消息]?
同时,我正在使用:
print('***************************************************** Pls. show this line only');
Run Code Online (Sandbox Code Playgroud)
作为解决方法。