我是Node.js的新手。有什么我需要做的,以setTimeout()工作?是node.js的setTimeout()工作吗?
这是一段代码片段。
异步代码实现
do {
console.log('waiting ... ' + appMsg.doneLoadTables);
setTimeout(function() { console.log('waiting ...'); }, 1000);
} while (!appMsg.doneLoadTables);
症状时,设置appMsg.doneLoadTables =真:
- (虽然两次调用CONSOLE.LOG是相似的,只有先打印appMsg的价值.doneLoadTables。)每个结果都包含该值。
- 调用console.log之间的间隔比1000毫秒更接近。 (我怀疑间隔的速度与计算机可以处理此处显示的循环一样快)。
- 虽然我希望异步例程可以在我期望的延迟期间继续处理,但我从未见过此循环结束;就好像该循环取得所有处理资源并阻止异步例程完成其工作并设置将结束该循环的变量。
我有节点4.2.1的这种经验;在安装Node 5.0.0后,我仍然有这种体验。
我已经看到关于setTimeout()的类似问题已经在这里被问过很多次了。我希望我在setTimeout()中使用IIFE使这个问题与所有这些问题截然不同。
预先感谢您提供的任何帮助...
“我希望我在setTimeout()中使用IIFE使这个问题与所有这些问题截然不同。” - 它没有。 – Quentin
您传递给'setTimeout'的匿名函数不是IIFE,因为它不会立即调用。 – joews
我提出了问题。感谢所有的答案。我更了解async是如何工作的。如果我知道我正在重复以前的问题,我不会提交。这是一个善良和熟练的团队! – BaldEagle