【发布时间】:2019-05-30 22:03:04
【问题描述】:
我是 node js 的新手,并试图了解如何进行异步调用。 我试图将一个函数包装到一个承诺中以使其异步。为简单起见,该函数只是一个需要时间的循环:
var p = new Promise(resolve => {
for (let i=0;i<999999999;i++){}
resolve('foo')
});
p.then(function (value) { console.log(value);});
console.log('bar');
我期待看到:
bar // 立即打印
foo // 循环结束后打印
相反,它们都是在循环完成后打印的。 如何让循环块异步运行?
附言。为缩进/格式道歉,我不得不用手机写这个。
谢谢
【问题讨论】:
-
“异步”是什么意思?在另一个线程中?
-
您可能正在阻止写入控制台的 IO 调用。
-
javascript只有一个线程。
-
你编写代码的方式会等到你的promise函数完成操作
-
@JonasWilms 是思考代码如何工作的方式。
标签: javascript node.js asynchronous promise