【发布时间】:2013-12-18 12:38:06
【问题描述】:
我正在尝试模拟一个异步回调,它在设定的秒数内执行某些操作。我希望这些都同时记录,在它们被触发后 3 秒。现在他们彼此连续记录 3 秒。睡眠功能阻止整个脚本运行。知道为什么吗?
function sleep(delay) {
var start = new Date().getTime();
while (new Date().getTime() < start + delay);
}
var same = function(string, callback) {
new sleep(3000);
return callback(string);
}
same("same1", function(string) {
console.log(string);
});
same("same2", function(string) {
console.log(string);
});
same("same3", function(string) {
console.log(string);
});
【问题讨论】:
-
“知道为什么吗?” 因为 JavaScript 是单线程的,而且你一直在循环运行。
-
Javascript 是单线程的。你不能那样做。
-
@FelixKling 单线程是的!
标签: javascript asynchronous sleep