博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javascript 异步问题解决 Promise
阅读量:6818 次
发布时间:2019-06-26

本文共 807 字,大约阅读时间需要 2 分钟。

原文:

一直以来,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函数 就不能逆向的修改状态

转载于:https://www.cnblogs.com/liaohui5/p/10581661.html

你可能感兴趣的文章
Vue单页及多页应用全局配置404页面实践
查看>>
Google 面试题 | 找二叉树最底层最左边的节点
查看>>
论文导读 | OpenAI的实体消歧新发现
查看>>
Netflix 推荐系统(Part Six)-To Be Continued
查看>>
死磕安卓前序:MVP架构探究之旅—基础篇
查看>>
Markdown语法和基本使用
查看>>
全栈 - 13 ggplot2 在 R 中进行可视化
查看>>
BCH简报:稳步开发、市场回调、涌现各种创新应用
查看>>
刚接触一个 Laravel 项目,你可以从这些地方入手
查看>>
Laravel Shop 电商项目正式开源~
查看>>
一分钟让你明白标签云
查看>>
想在vue、react中用es6,先知道这些必会的才行
查看>>
AJAX多级下拉联动【JSON方式】
查看>>
SQL更新错误JDBC batch update constraint [null]
查看>>
看图轻松理解数据结构与算法系列(希尔排序)
查看>>
【需求解决系列之一】移动卡片实现答题功能
查看>>
最全的Android 颜色透明度
查看>>
Spring Boot中使用WebSocket总结(三):使用消息队列实现分布式WebSocket
查看>>
世界上最贵的几幅画(纯属扯淡)
查看>>
iOS 面向协议封装全屏旋转功能
查看>>