定时器和promise_JavaScript|几个例子带你理解Promise

本文通过生活中的承诺概念引入JavaScript中的Promise,详细解释了Promise的三种状态及其转换,展示了如何创建和使用Promise,包括通过then、catch和finally进行链式调用。通过实例说明Promise解决了回调地狱问题,提供了异步操作的同步流程表达方式。
摘要由CSDN通过智能技术生成

c368ff29f027d63e759b910a0f2976cb.gif

点击上方蓝字设为星标4c6c22660e670770d48e0ec9871675e6.png

下面开始今天的学习~

JavaScript中的Promise使得异步操作得以简化,本期将围绕Promise进行讲解。

生活中的Promise

  • Promise一词翻译为中文译为承诺,这里的承诺表示保证在一定条件下会执行某个事件

  • 作为承诺,它可以执行,也可以违背

  • 当执行承诺时,我们可以从中有所获得,可以进一步执行一些事件

  • 当违背承诺时,我们需要知道其中的原因,并采取进一步措施

  • 当做出承诺时,我们不能立刻采取措施,只能提前约定,当执行承诺或违背承诺时,我们需要做什么

  • 有可能出现以下情况,我们可能等待了一段时间,但是承诺还是未能实现。所以,我们需要设置一个时间阈值,当超出了这个时间,这个承诺就不再有意义,因为此时,你已经有了下一步的计划

JavaScript中的Promise

在JavaScript中,也存在一个Promise对象。它有三种状态,即pending(进行中),fulfilled(已成功)和rejected(失败)。Promise在运行过程中,有且仅有两种情况,即从pending到fulfilled或者从pending到rejected,即状态一旦发生改变,它就凝固了。之后的任何时候,再去获取这个Promise对象,它的值将不会发生改变。

01 Promise的优缺点
  • Promise可以将异步操作以同步的流程表示出来,其提供的统一的接口简化了操作,避免的代码的层层嵌套,可以解决回调地狱的问题(下文会进行举例说明)

  • Promise一旦建立,就会立即执行,无法取消。当处于pending状态时,无法得知当前处于什么阶段

02 创建Promise

Promise对象可以使用new来调用其构造器,其中的回调函数接收两个参数,即resolve和reject,如果异步操作执行成功,则调用resolve函数返回预期结果,反之调用reject传递错误信息。

new Promise(function(resolve, reject) {
      resolve()  reject()})

首先我们写一段最简单的Promise,来体会一下Promise的用法:

var result = truep1 = new Promise(function(resolve, reject) {
      if(result) {
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值