Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 运行循环的计时器_Node.js - Fatal编程技术网

Node.js 运行循环的计时器

Node.js 运行循环的计时器,node.js,Node.js,问题已经回答了 注意:我试图将此输出到一个网页,我只使用控制台作为参考。我已经设置了css代码 var r_text = ['Hi', 'Go', 'No']; function countdown() { var count = 20; var timerId = setInterval(function() { count--; console.log(count); if(count == 0) {

问题已经回答了

注意:我试图将此输出到一个网页,我只使用控制台作为参考。我已经设置了css代码

    var r_text = ['Hi', 'Go', 'No'];
function countdown() {

    var count = 20;
    var timerId = setInterval(function() {
        count--;
        console.log(count);

        if(count == 0) {
            console.log(r_text[Math.floor( Math.random() * r_text.length )]);
            count = 20;
        }
    }, 1000);
}
countdown();

不要忘了更新
元素ToReceiveWord
的ID选择器以选择页面中的元素

您的原始代码有几个错误:

  • r\u randomtext
    /
    r\u text
    var名称不匹配
  • 在显示文本之前不绘制新的随机值
  • Math.random()*x中的数组长度错误
  • 计时器为10秒,而不是要求的20秒
改进:

  • 使用文字数组语法(更简洁、更短、解释器优化友好)
  • 我做了一些数学运算

我还对元素的文本属性进行了特征检测检查。所有现代浏览器都支持
textContent
,这是W3C的标准,我使用
innerText
作为旧IE的后备。Chrome支持这两个属性,Firefox只支持
textContent
,并且让它在5秒钟后不会消失文本。是的,只要你在控制台中运行,它就不会消失。也许你想把它打印到网页上?是的,我正在打印到网页上!我已经设置了css代码,我只是无法让javascript根据您生成的代码在网页上打印到itso。这会用html打印吗:

0

?重构了我的代码并添加了一个演示。我现在在演示中使用了
id=“WORD”
,只要HTML的id与
getElementById
的参数匹配,就可以使用任何有效的id(WORD、数字和下划线/连字符的组合)。
var r_text = ['Hi', 'Go', 'No'],
    textProp = 'textContent' in document.createElement('div') ?
               'textContent' :
               'innerText',
    //update this ID selector to match an element in the page:
    elementToReceiveWord = document.getElementById('WORD'),
    seconds = 20; //timer in seconds

function countdown() {
    var count = seconds;
    var timerId = setInterval(function() {
        count--;
        console.log(count);

        if(count == 0) {
            var word = r_text[Math.floor( Math.random() * r_text.length )];
            elementToReceiveWord[textProp] = word;
            setTimeout(function() {
                  elementToReceiveWord[textProp] = '';
            }, 5000);
            count = seconds;
        }
    }, 1000);
}
countdown();