javascript 异步问题解决 Promise

原文: https://www.cnblogs.com/yunfeifei/p/4453690.html

一直以来,JavaScript处理异步都是以callback的方式,在前端开发领域callback机制几乎深入人心。 但是大量的使用callback虽然也能实现想要的功能,但是大量的使用callback会让代码的可读性非常差(个人看法),近几年随着JavaScript开发模式的逐渐成熟,CommonJS规范顺势而生,其中就包括提出了Promise规范,Promise完全改变了js异步编程的写法,让异步编程变得十分的易于理解

Promise

  • 一个promise有三种状态:等待(pending 默认)、已完成(fulfilled)、已拒绝(rejected)

  • 一个promise的状态只可能从“等待”转到“完成”态或者“拒绝”态,不能逆向转换

  • promise必须实现then方法

  • then方法接受两个参数, 第一个参数是成功时的回调,第二个参数是失败时的回调

    function testPromise(bool) {
        return new Promise((success, error)=>{
          if (bool) {
              success();
             } else {
              error();
             }
        });
    }
    
    testPromise(true).then(()=>{
        // 如果 testPromise 的 参数为真则执行
    },()=>{
        // 如果 testPromise 的 参数为假则执行
    });
    
  • 做个形象的比喻, promise 就是考试的判断题, 默认的是没有答案(等待状态) ,只要提交答案无论对错,
    都不能再修改, 放到了编程思想中就是只要执行了 success 或者 error函数 就不能逆向的修改状态
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值