有没有sleep比使用以下pausecomp函数更好的方法来设计JavaScript (从这里开始)?
function pausecomp(millis)
{
var date = new Date();
var curDate = null;
do { curDate = new Date(); }
while(curDate-date < millis);
}
Run Code Online (Sandbox Code Playgroud)
这不是JavaScript中Sleep的重复- 动作之间的延迟 ; 我希望在函数中间实现真正的睡眠,而不是在执行代码之前的延迟.
async在await循环中使用是否有任何问题?我正在尝试循环遍历文件数组和forEach每个文件的内容.
import fs from 'fs-promise'
async function printFiles () {
const files = await getFilePaths() // Assume this works fine
files.forEach(async (file) => {
const contents = await fs.readFile(file, 'utf8')
console.log(contents)
})
}
printFiles()
Run Code Online (Sandbox Code Playgroud)
这段代码确实有效,但这可能会出错吗?我有人告诉我你不应该使用await这样的高阶函数,所以我只是想问一下这是否有任何问题.
我有一些JavaScript代码,如下所示:
function statechangedPostQuestion()
{
//alert("statechangedPostQuestion");
if (xmlhttp.readyState==4)
{
var topicId = xmlhttp.responseText;
setTimeout("postinsql(topicId)",4000);
}
}
function postinsql(topicId)
{
//alert(topicId);
}
Run Code Online (Sandbox Code Playgroud)
我得到一个topicId未定义的错误在使用该setTimeout()函数之前,一切正常.
我希望postinsql(topicId)在一段时间后调用我的函数.我该怎么办?
我有以下代码:
var request = require('request');
var cheerio = require ("cheerio");
var async= require("async");
var MyLink="www.mylink.com";
async.series([
function(callback){
request(Mylink, function (error, response, body) {
if (error) return callback(error);
var $ = cheerio.load(body);
//Some calculations where I get NewUrl variable...
TheUrl=NewUrl;
callback();
});
},
function(callback){
for (var i = 0; i <=TheUrl.length-1; i++) {
var url = 'www.myurl.com='+TheUrl[i];
request(url, function(error, resp, body) {
if (error) return callback(error);
var $ = cheerio.load(body);
//Some calculations again...
callback();
});
};
}
], function(error){
if (error) …Run Code Online (Sandbox Code Playgroud) 我最初在python中有这个代码.
SendSerialPortCommand("XXX")
time.delay(0.5)
SendSerialPortCommand("YYY")
Run Code Online (Sandbox Code Playgroud)
我将此代码转换为node.js,但代码看起来更加丑陋.
SendSerialPortCommand("XXX");
setTimeout(function () {
SendSerialPortCommand("YYY");
}, 500);
Run Code Online (Sandbox Code Playgroud)
想象一下,如果我的python代码看起来像这样.
SendSerialPortCommand("XXX")
time.delay(0.5)
SendSerialPortCommand("YYY")
time.delay(0.5)
SendSerialPortCommand("AAA")
time.delay(0.5)
SendSerialPortCommand("BBB")
Run Code Online (Sandbox Code Playgroud)
node.js代码setTimeout()在内部看起来很难看setTimeout().
如何在可读性方面改进node.js代码?我不关心违反这个问题的javascript的异步性质.重要的是可读性.
javascript ×5
node.js ×3
settimeout ×2
async-await ×1
callback ×1
for-loop ×1
parameters ×1
promise ×1
sleep ×1
timedelay ×1