相关疑难解决方法(0)

什么是sleep()的JavaScript版本?

有没有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)

这不是JavaScriptSleep的重复- 动作之间的延迟 ; 我希望在函数中间实现真正的睡眠,而不是在执行代码之前的延迟.

javascript sleep

2115
推荐指数
41
解决办法
241万
查看次数

使用async/await和forEach循环

asyncawait循环中使用是否有任何问题?我正在尝试循环遍历文件数组和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 node.js promise async-await ecmascript-2017

864
推荐指数
24
解决办法
38万
查看次数

如何将参数传递给setTimeout()回调?

我有一些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)在一段时间后调用我的函数.我该怎么办?

javascript parameters callback settimeout

796
推荐指数
12
解决办法
54万
查看次数

延迟节点js中的每个循环迭代,async

我有以下代码:

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)

javascript for-loop node.js

13
推荐指数
5
解决办法
3万
查看次数

按顺序调用javascript代码的替代方法,其间有延迟

我最初在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 timedelay settimeout node.js

4
推荐指数
1
解决办法
646
查看次数