A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

异步函数在JavaScript中有好有坏。好的一面是异步函数是非阻塞的,因此很快 - 特别是在Node.js上下文中。缺点是处理异步函数可能很麻烦,因为有时必须等待一个函数完成才能在进行下一次执行之前获得“回调”。
有一些方法可以发挥异步函数调用的优势并正确处理它们的执行,但其中一种方法远远优于其他方法(Spoiler:它是Async / Await)。在本文中,您将了解使用PromisesAsync/Await的来龙去脉,以及我们对两者之间如何比较的看法。
Promises vs. Callbacks作为JavaScript或Node.js开发人员,正确理解Promises和Callbacks之间的区别以及它们如何协同工作至关重要。
两者之间存在微小但重要的差异。在每个Promise的核心,都有一个Callback解决某些数据(或错误),这些数据会被调用到Promise。
回调处理程序:
调用validatePassword()功能:下面的代码片段显示了验证密码的完整端到端检查(它是静态的,必须匹配“bambi”):代码注释得非常好,但是,如果您感到困惑,catch只会在reject()从promise调用时执行。由于密码不匹配,我们调用reject(),因此“catch”错误并将其发送到done()函数。
Promises与传统的基于回调的方法相比,Promise为执行、组合和管理异步操作提供了更简单的替代方案。它们还允许你使用类似同步try / catch的方法处理异步错误。
Promise还提供三种唯一的状态
  • Pending- promise的结果尚未确定,因为将产生其结果的异步操作尚未完成。
  • Fulfilled - 异步操作已完成,并且promise有值。
  • Rejected - 异步操作失败,promise永远不会实现。在被拒绝状态下,promise有一个reason可以指示操作失败的原因。
当promise在pending状态时,它可以转换为fulfilled或rejected的状态。然而,一旦promise得到fulfilled或rejected,它将永远不会过渡到任何其他状态,其value或失败原因不会改变。
缺点

1 个回复

倒序浏览
奈斯
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马