您已经问过 “链接” 与 “分支” 。
假设
f1并且
f2表示返回诺言的异步操作,是的,两者之间存在显着差异。对于选项1:
- 它进行序列化
fn1
,fn2
因此fn2
直到fn1
解决了返回的promise后才调用它。 .catch()
适用于fn1
或中的错误fn2
fn2
如果fn1
拒绝,则不会调用。
对于选项2:
fn2
不等待fn1
解决。fn2
一旦fn1
返回类似于的,就会被调用fn1(); fn2();
。这意味着异步操作由同时开始fn1
和fn2
同时进行(有时称为并行运行而不是串行运行)。- 的
.catch()
,因为它不是由要么创建的承诺并不适用于任何.then()
电话。 - 双方
fn1
并fn2
会在任何的错误而不考虑调用。



