gpt4 book ai didi

node.js - Meteor.setTimeout 不会导致延迟

转载 作者:搜寻专家 更新时间:2023-11-01 00:44:05 25 4
gpt4 key购买 nike

我正在使用 Spheron 智能包创建我的第一个 Meteor 应用程序。我可以控制他的球体并改变它的颜色,但我试图在颜色变化之间创建一个延迟。
这是我的代码:

function makePrettyLights(sphero,color){   
var colors = [];
colors['red'] = '0xB36305';
colors['green'] = '0xE32017';
colors['blue'] = '0xFFD300';

console.log(color);

var spheroPort = '/dev/tty.Sphero-OBB-RN-SPP';
var timer = 2000;
Meteor.setTimeout(function(){

sphero.on('open', function() {
sphero.setRGB(colors[lineName], false);
});
sphero.open(spheroPort);

},2000);
}

这个函数在循环中被调用。我没有包含循环,它涉及我解析一些 xml 和其他位,但它有效。

if (Meteor.isServer) {
/**** Loop Code Here ****/
makePrettyLights(sphero,color)
/****End Loop Code ****/
}

我也试过在调用它的函数周围而不是在函数内部设置超时包装器。
但基本上它们都同时在我的代码末尾运行。
I20140806-09:49:35.946(1)?设置颜色
I20140806-09:49:35.946(1)?设置颜色
I20140806-09:49:35.946(1)?设置颜色

最佳答案

问题很可能出在您的循环中。我假设这是一个非常标准的 for 循环,在这种情况下,这种行为是意料之中的。当你打电话时:

for(var i=0; i<5; ++i) {
setTimeout(someFunction, 2000);
}

setTimeout 方法将在同一时刻连续调用 5 次。这意味着 someFunction 将在 2000 毫秒后连续调用 5 次。

关于node.js - Meteor.setTimeout 不会导致延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25156436/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com