![]() |
1
66
我不确定是否有人真的给出了最通用的解释何时使用
例如,假设您需要从三个独立的远程API调用收集信息,并且当您得到所有三个API调用的结果时,您需要使用所有三个结果运行一些进一步的代码。这种情况对我来说是完美的
此外
如上所述,单个异步操作是什么或者它们是否是同一类型并不重要。它只关系到你的代码是否需要协调它们,并知道它们何时都成功。
不
使用
|
![]() |
2
5
如果
如果拒绝输入承诺,则
一个常见的场景是等待几个API请求完成,以便您可以合并它们的结果:
你可以用
|
![]() |
3
3
很难回答这些问题,因为当使用语言特性的可用api时,这些问题往往会自己回答。基本上,以任何适合您的用例的方式使用承诺都是可以的,只要您避免使用它们 anti-patterns .
|
![]() |
4
3
例子: 我想做什么 在我的应用程序中显示一个包含用户电子邮件和每个用户的产品名称的表之前,我想加载我的应用程序的用户及其产品(假设你必须执行多个请求)。
我接下来做什么
我将请求发送到我的API,创建承诺并使用
当所有的数据都被加载后我该怎么办
一旦数据到达我的应用程序,我就可以执行
我希望它能帮助您了解在哪种情况下使用
|
![]() |
5
0
我倾向于用promise all来做这样的事情:
|
![]() |
6
0
2.只需使用答应我。好的(文件).catch(err=>{}) 3.使用。反思之前的承诺。如果你想等待所有的一切 拒绝或履行的承诺
|
![]() |
7
0
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Promise/all
你可以通过
|
![]() |
8
0
这使得它非常适合于任何包含独立调用的代码(我们希望在代码的其余部分继续之前返回/完成这些调用),尤其是当我们进行前端调用并希望用户体验尽可能平滑时。
|
![]() |
9
-2
承诺-是一个特殊的对象,包含你的状态。最初,挂起(等待),然后-其中之一:已完成(已成功)或已拒绝(已完成但有错误)。 关于挂起的承诺,回调可以有两种类型:
悬挂手柄的通用方法:
在它的帮助下,您可以一次分配两个处理程序,并且只能分配一个:
同步抛出-与拒绝相同
承诺 在承诺之后,功能性的使用往往变得更加方便。
httpGet函数(url)将返回PROMIS,在成功加载带有url的数据后,PROMIS将与这些数据一起进入completed,如果出现错误,则返回错误信息:
如您所见,在函数内,当onload/onerror分别被调用时,XMLHttpRequest对象像往常一样被创建和发送,即resolve(状态为200)或reject。 使用:
如果我们想同时实现多个异步进程并处理它们的结果呢? Promise类具有以下静态方法。 答应我。好的(可编辑)
例如:
假设我们有一个URL数组。
要并行下载它们,您需要:
我们得到: '使用严格';
请注意,如果任何一个承诺以错误结束,结果将是 答应我。好的这个错误。
例如:
总计:
|
![]() |
Sante Kyaku · 为什么我要用等待来获得承诺的结果? 3 年前 |
![]() |
Tomas Kubes · 是最大并发数。NET任务有限吗? 3 年前 |
![]() |
punkish · 并行异步获取/等待承诺。全部的 3 年前 |
![]() |
dapidmini · 未捕获的承诺嵌套异步函数承诺错误处理 3 年前 |
![]() |
smith · 如何在vue中使用wait/async 3 年前 |