![]() |
1
9
你所看到的有几个原因:
重要的是要记住承诺不会使任何事情变得异步——它们提供了 观察 结果是 已经 异步。
下面是一个使用
有一个小小的警告:你传递给的处理程序
|
![]() |
2
5
不,不会的。传递给promise构造函数的回调被立即调用。什么是异步是调用
但是,它不是异步的,因为代码在另一个线程上运行或被延迟,这不会发生,因为js本身是在一个线程中执行的*。
*如果你打算做真正“紧张”的工作,换个思路去做可能会有好处(参见
|
![]() |
3
1
这是一个很容易用javascript造成的误解。你的职能
异步函数不会立即返回,它们运行代码体,直到命中等待并返回承诺。在您的示例中,整个函数将在返回之前运行。 不能使用这种长时间运行的进程而不阻塞。这就是为什么node会不厌其烦地将i/o访问和计时器之类的东西卸载到另一个线程。 有关详细信息,请参见此处: https://nodejs.org/en/docs/guides/event-loop-timers-and-nexttick/ 如果要异步运行此类长时间运行的代码,则需要派生一个子进程: https://nodejs.org/api/child_process.html |
![]() |
tomography · 更改承诺类型 2 年前 |
![]() |
Aristocles · 许诺抛出错误后是否继续执行所有提取? 2 年前 |
![]() |
Centurion22 · 异步函数内的异步映射函数未定义响应数据 2 年前 |
![]() |
Scott Thiessen · 完成后逃离承诺链[重复] 6 年前 |
|
adcomptyler · 向Twilio视频快速启动添加静音按钮 6 年前 |
![]() |
JWiley · 带有FileReader的Promise函数过早解析 6 年前 |
![]() |
John Lippson · 在所有异步函数完成后执行函数? 6 年前 |
![]() |
ctf0 · 解析嵌套承诺后运行函数 6 年前 |