Chr*_*sna 3 javascript asynchronous node.js promise
大家好,我希望你们做得很好,对这个愚蠢的问题感到抱歉,我只是想知道 async/await 是否允许其他任务运行?
我刚刚在 MDN 上读到async wait 的缺点,其中有一部分说“它确实允许其他任务同时继续运行,但你自己的代码被阻止”。这是什么意思?是只有 async/await 才能允许其他任务运行,还是 Promise 也可以这样做?如果是这样,你们能给我举个例子吗?先感谢您 :)
当函数命中语句时await,它会运行右侧的代码以获取 Promise,然后进入睡眠状态。
其他函数可以同时运行,但在承诺解决之前,此函数中的任何其他行都不会运行。
\n这不是一个缺点。这才是重点。
\nasync function example() {\n const result = await somethingFromAPromise();\n do_something_with(result);\n}\nRun Code Online (Sandbox Code Playgroud)\n如果它不停止,那么您将无法result在下一行执行任何操作。
文档的这一部分以非常冗长的方式说的是,有时您会遇到这样的情况:
\nasync function example() {\n const result1 = await somethingFromAPromise();\n const result2 = await somethingFromAnotherPromise();\n do_something_with(resul1, result2);\n}\nRun Code Online (Sandbox Code Playgroud)\n\xe2\x80\xa6 其中您有两个可以并行运行的承诺,因为它们是完全独立的,但在第一个承诺完成之前您不会启动第二个承诺。
\n它还告诉您如何减轻这种情况
\nasync function example() {\n const result1Promise = somethingFromAPromise();\n const result2Promise = somethingFromAnotherPromise();\n const [result1, result2] = await Promise.all(result1Promise, result2Promise);\n do_something_with(resul1, result2);\n}\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
1060 次 |
| 最近记录: |