当前位置: 首页 > 网络应用技术

ES6的承诺指令手册

时间:2023-03-05 16:39:47 网络应用技术

  我想几天前写一张诺言笔记,但我总是只知道它用于解决回调地狱的问题。没有详细的理解,因此在这些天方法中学习时,简要介绍了。

  承诺:这是我的手册!

  我:也许它不太完整,撤回更多?

  什么是承诺?是一类?一个对象?数组?

  让我们首先打印一下:

  console.dir(Promise);

  印刷后,让我们正式了解它。

  Promise是一种建设性功能,是ES6提出的异步编程解决方案,用于解决回调地狱的问题。从打印可以看出它具有...及其原型。

  另一句话来自互联网:承诺,这意味着承诺,承诺将为您提供一段时间的结果。Promise有三个国家:待定,实现(成功),拒绝,一旦国家改变,它将不会改变。

  上面使用承诺的建议来解决回调地狱的问题。那么什么是回调地狱?您可以参考我的代码。在恒定嵌套恢复功能之后,代码将变得非常麻烦。当您查看代码时,您的眼睛不舒服,大脑不舒服。

  Promise的构造函数接收一个函数,此功能需要传递两个参数:

  还记得我上面写的嵌套示例吗?啊,不记得,然后你把它翻过来?

  承诺的优点是,在方法中,您可以继续编写承诺对象并返回,然后继续致电以进行回调操作。

  因此,从表面上看,承诺只能简化回调层的写作,从本质上讲,诺言的本质是国家。维持状态和传输状态的方法可以称为flexible。因此,使用承诺的正确场景就是这样:

  我重写了上面的。最后一个没有回报的是我没有继续后面。

  这实际上是链写作,然后等同于我们以前的回调。

  在当时的方法中,您不仅可以返回承诺对象,也可以返回数据:

  更改承诺状态,然后我们可以在中间执行失败的恢复,以查看此示例:

  然后可以接收两个参数,对应于解析的恢复和拒绝的回调,因此在调整A的值时,我们可以获得两个结果。

  也就是说,大于10,小于10

  知道其他语言的人应该知道捕获被用来抓住异常,因此,在承诺中,它与那时一样

  写作是:

  效果与当时编写的第二个参数相同。

  但是,它还具有另一个角色:执行Resolve的回调(即,当时的第一个参数),如果它异常抛出(代码是错误的),则不会将错误卡报告为死亡,但这将是死亡的过程。进入这种捕获方法。

  就像尝试

  再次查看此代码

  在此代码中,返回A的结果写入B。通常,浏览器将报告错误,并且不会执行它。我们使用捕获后,

  浏览器将打印大于10的错误,并且错误:ReferenceError:b未定义。

  换句话说,即使上面存在错误,它仍然进入捕获方法,并且错误的原因是在ERR参数上传递,因此程序将继续执行。

  所有方法都在并行提供多个任务,执行异步操作,并且只有执行异步操作。

  全部,我们可以并行执行多个异步操作。一个场景适合使用此场景。打开一个网页,需要加载各种资源。加载所有内容后,页面初始化。

  所有方法的效果实际上是谁运行缓慢并且是基于回调的拒绝,然后还有另一种方法可以快速运行,并且基于恢复的人,这是种族方法。

  以上述FN123为例。如果它们在1、2和3秒内执行,则FN1的结果将在第一秒的结尾输出。FN3结果。

  这场比赛有什么用途?仍然有很多使用场景。例如,我们可以使用Race设置异步请求的超时,并在超时后执行相应的操作。

  例如,图片请求,我们将使用延迟请求(如果是3秒),以及使用竞赛方法同时致电的图片请求。如果请求在3秒内成功,则分辨率将输入the Method.image资源请求故障错误。

  第十一个假期结束了,学生将继续上课,这是有害的。

  像赞美一样,一起努力工作?