Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/37.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
Javascript setTimeout在NodeJS中不工作_Javascript_Css_Node.js - Fatal编程技术网

Javascript setTimeout在NodeJS中不工作

Javascript setTimeout在NodeJS中不工作,javascript,css,node.js,Javascript,Css,Node.js,我有一个slideUp函数,它调用animate函数。目的是使div看起来像 每20毫秒调用一次动画功能,在屏幕上向上滑动,并在调整div位置的css后在浏览器中重新设置div的位置。 我使用的是Node js,由于 异步行为,我相信超时只被调用一次,并且程序在等待超时完成时继续运行。 当我将“bottom”的值打印到控制台时,它已按预期循环了20次。只有最后的视图 得到你。有谁能提供任何方法来绕过这个问题,让它每20次重播一次 slideUp: function () {

我有一个slideUp函数,它调用animate函数。目的是使div看起来像 每20毫秒调用一次动画功能,在屏幕上向上滑动,并在调整div位置的css后在浏览器中重新设置div的位置。 我使用的是Node js,由于 异步行为,我相信超时只被调用一次,并且程序在等待超时完成时继续运行。 当我将“bottom”的值打印到控制台时,它已按预期循环了20次。只有最后的视图 得到你。有谁能提供任何方法来绕过这个问题,让它每20次重播一次

slideUp: function () {
            var bottom=0;
            this.animate(bottom);
        },

 animate: function(bottom){   
                bottom++;
                if (bottom<20){
                    this.view.getClientNotificationElement().setAttribute("style","margin-bottom:"+bottom+"px");
                    this.clientNotification.attachTo(this.view.getClientNotificationElement());
                    setTimeout(this.animate(bottom), 20);
                    console.log(bottom);
                }
            }     
slideUp:function(){
var-bottom=0;
这个。动画(底部);
},
动画:函数(底部){
底层++;
如果(底部您正在将
this.animate(底部)
的返回值传递给
设置超时

animate
函数没有
return
语句,因此它返回
undefined

函数的效果立即发生(因为您正在调用它),然后
setTimeout
什么也不做

将函数传递给
setTimeout

var self = this;
var callback = function () {
    self.animate(bottom);
};
setTimeout(callback, 20);

哼……你是在使用Node js客户端吗?这是浏览器需要关注的问题。Node.js运行在服务器端。你们都错了。如果你使用或类似的框架,你可以在浏览器环境中轻松运行Node.js。@嗯,你一定是在开玩笑--
Node webkit
是用于创建独立的应用程序的。@MMM OP说:“在“浏览器”和问题未标记为
节点webkit
。。。