当前位置: 首页 > 面试题库 >

然后,promise.then.then和promise.then之间是有区别的;promise.then

卢才艺
2023-03-14
问题内容

我想知道以下两个之间有区别吗?

  1. aPromiseObj.then(fn1).then(fn2).catch(fn3);
  2. aPromiseObj.then(fn1); aPromiseObj.then(fn2); aPromiseObj.catch(fn3);

工作流程会改变吗?

ps:虽然我想更广泛地考虑这一点,但我处于有偏见的环境中。


问题答案:

您已经问过 “链接”“分支”

假设f1并且f2表示返回诺言的异步操作,是的,两者之间存在显着差异。对于选项1:

  1. 它进行序列化fn1fn2因此fn2直到fn1解决了返回的promise后才调用它。
  2. .catch()适用于fn1或中的错误fn2
  3. fn2如果fn1拒绝,则不会调用。

对于选项2:

  1. fn2不等待fn1解决。 fn2一旦fn1返回类似于的,就会被调用fn1(); fn2();。这意味着异步操作由同时开始fn1fn2同时进行(有时称为并行运行而不是串行运行)。
  2. .catch(),因为它不是由要么创建的承诺并不适用于任何.then()电话。
  3. 双方fn1fn2会在任何的错误而不考虑调用。


 类似资料:
  • 问题内容: 使用以下两种方法计算签名有什么区别? 计算签名 使用SHA256计算SHA256 并使用摘要计算摘要以获得签名? 如果它们不同,是否有办法修改方法2,使两个方法给出相同的输出? 我尝试了以下代码: 但是,输出并不相同。 以下是带有我的测试键的示例输出: 方法1: 方法2: 更新1: 根据mkl的回答,我修改了代码,但仍然无法正确执行。我还想念什么吗? 方法1: 方法2: 问题答案: 用

  • 问题内容: 我的Google-fu使我失败了。 在Python中,以下两个相等测试是否等效? 这是否适用于您要比较实例(list说)的对象? 好的,这样可以回答我的问题: 因此,==测试重视在哪里is进行测试以查看它们是否是同一对象? 问题答案: 如果两个变量指向同一个对象(如果变量引用的对象相等),则将返回。 在您的情况下,第二个测试仅能工作,因为Python会缓存小的整数对象,这是实现细节。对

  • 问题内容: 有时我看到: 有时我看到: 两种形式之间有区别吗?是否有令人信服的理由使用一种形式而不是另一种形式? 问题答案: 这两种形式没有实际的区别,但是从_语法的_角度来看,两者之间的区别是第一个示例a中将包含分组运算符(括号),其中包括: 在第二个示例中,我们首先拥有一个整数,其中包含:

  • 问题内容: 我错放了太多次了,我想我一直忘记,因为我不知道两者之间的区别,只是一个给了我我期望的价值,而另一个却没有。 为什么是这样? 问题答案: 是的简写形式(尽管请注意,该表达式只会被计算一次。) 是的,即指定一元的到。 例子:

  • 问题内容: 因此,我有一段简单的代码可以打印出整数1-10: 然后,如果仅在第3行上更改一个运算符,它将打印出无限数量的1整数(我知道为什么会这样做)。为什么在运行第二个程序时没有出现语法错误?如果赋值运算符后面跟着一个加法运算符,它不会调用语法错误吗? 问题答案: 与相同, 只是意味着。