今天决定对之前学过的一些前端的知识进行梳理和总结,因为最近都是独自承担项目的开发与搭建,所以先从前后端交互的第一线axios来梳理,复习axios首先一定要先复习promise对象。

什么是promise?

promise对象是ES6新引入的一个解决异步编程的方案。首先我们要知道前端比较常见的两种异步编程:

1.ajax请求,2.定时器。

ajax请求我们以jQuery为例: $.get('/server',(data)=>{})

定时器:setTimeout(()=>{},2000);

从这两个异步编程的代码我们很容易看出传统的解决异步编程的方案——回调函数和事件

这种传统的解决方案在一些复杂的场景中会导致回调函数嵌套使用从而产生 回调地狱,回调地狱一不利于代码阅读二不利于异常处理,因为异步函数执行过程是不会相互等待的,甚至可能会导致每次运行的结果不同。

而promise支持链式调用,可以完美的避开这一风险,这一点非常重要。(面试重点)

与传统的异步编程解决方案相比,promise的指定回调函数的方式更加灵活。旧的方式必须在启动异步任务之前指定。而promise的过程为:

启动异步任务 => 返回promise对象 =>给promise对象绑定回调函数(甚至可以在异步任务结束后指定多个)。

最终我们可以得出promise的概念:{

1.promise是es6引入的一门新的JS的解决异步编程的方案。

2.从语法来说promise是一个构造函数

3.从功能上来说promise是一个封装了一个异步操作并可以获取其成功/失败结果的值的一个对象

}

ES6 - promise(1)的更多相关文章

  1. ES6 - promise(3)

    上一篇熟悉了promise的具体过程: promise的过程: 启动异步任务 => 返回promise对象 =>给promise对象绑定回调函数(甚至可以在异步任务结束后指定多个). 从p ...

  2. ES6 - promise(2)

    从上一篇中我们知道promise的概念,上一篇也提到了 promise的过程: 启动异步任务 => 返回promise对象 =>给promise对象绑定回调函数(甚至可以在异步任务结束后指 ...

  3. 基础知识:Promise(整理)

    基础知识:Promise(整理) (来自牛客网)下面关于promise的说法中,错误的是(D) A. resolve和reject都是直接生成一个进入相应状态的promise对象,其参数就是进入相应状 ...

  4. ES6语法(3)—— 用promise()对象优雅的解决异步操作

    Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大. 所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果. ...

  5. 大白话讲解Promise(二)理解Promise规范

    上一篇我们讲解了ES6中Promise的用法,但是知道了用法还远远不够,作为一名专业的前端工程师,还必须通晓原理.所以,为了补全我们关于Promise的知识树,有必要理解Promise/A+规范,理解 ...

  6. 大白话讲解Promise(一)

    去年6月份, ES2015正式发布(也就是ES6,ES6是它的乳名),其中Promise被列为正式规范.作为ES6中最重要的特性之一,我们有必要掌握并理解透彻.本文将由浅到深,讲解Promise的基本 ...

  7. 关于promise(一)

    该新特性属于 ECMAScript 2015(ES6)规范,在使用时请注意浏览器兼容性. 由于ES6原生提供Promise,所以无需安装Promise库.但在ES5环境下我们可以使用bluebird库 ...

  8. Promise (1) 如何使用Promise

    Promise 也是面试高频问题, 今天我们来看看Promise是什么, 能做什么, 怎么用, 下一期我们自己来模拟一个myPromise 1  Promise 是什么 我们要学会自己给自己提问, 才 ...

  9. 【转】大白话讲解Promise(一)

    原文地址:https://www.cnblogs.com/lvdabao/p/es6-promise-1.html ES6 Promise 先拉出来遛遛 复杂的概念先不讲,我们先简单粗暴地把Promi ...

随机推荐

  1. 关于表达式&& 和 || 有多项的时候的取值

    && 表达式只有两项的时候,如果表达式为false, 返回为false 的那一个 ,为true的时候    返回最后一个值 ||  只有两项的时候,返回为true 的那一个;都为fal ...

  2. 基于node实现一个简单的脚手架工具(node控制台交互项目)

    实现控制台输入输出 实现文件读写操作 全原生实现一个简单的脚手架工具 实现vue-cli2源码 一.实现控制台输入输出 关于控制台的输入输出依然是基于node进程管理对象process,在proces ...

  3. 帝国CMS批量提取正文内容到简介

    最近接到一个帝国CMS模板改版项目,自带的数据可能是采集的,以前的简介字段内容只截取了60个字,新模板的简介60字符太少了,不美观,想让简介都截取200个字,怎么批量修改呢,文章太多了手动改肯定不行, ...

  4. RPC及Dubbo和ZooKeeper的安装

    RPC及Dubbo和ZooKeeper的安装 RPC 通信有两种方式:HTTP(无状态协议,通信协议),RPC(远程过程调用) 它两的本质没有区别,只是功能有点不一样 官方解释: RPC是指远程过程调 ...

  5. VMware下ubuntu 20.04扩容/磁盘

    最近搞zabbix监控,发现搭建的监控server主机磁盘告警.提示/超过阈值80%. 有实在VMware软件下的虚拟机,首先我就是给虚机磁盘增加容量. 增加后发现没什么改变,看来还需要其他操作. 在 ...

  6. 论文阅读 DynGEM: Deep Embedding Method for Dynamic Graphs

    2 DynGEM: Deep Embedding Method for Dynamic Graphs link:https://arxiv.org/abs/1805.11273v1 Abstract ...

  7. python中常用内置函数和关键词

    Python 常用内置函数如下: Python 解释器内置了很多函数和类型,您可以在任何时候使用它们.以下按字母表顺序列出它们. 1. abs()函数 返回数字的绝对值. print( abs(-45 ...

  8. ElasticSearch7.3学习(十九)---- deep paging

    1.什么是deep paging 根据相关度评分倒排序,所以分页过深,协调节点会将大量数据聚合分析. 2.deep paging 性能问题 1消耗网络带宽,因为所搜过深的话,各 shard 要把数据传 ...

  9. XCTF练习题---MISC---小小的PDF

    XCTF练习题---MISC---小小的PDF flag:SYC{so_so_so_easy} 解题步骤: 1.观察题目,下载附件 2.下载完发现是一个PDF文件,经过转Word,查看属性,十六进制查 ...

  10. Azure Terraform(十一)Azure DevOps Pipeline 内的动态临时变量的使用

    思路浅析 在我们分析的 Azure Terraform 系列文中有介绍到关于 Terraform 的状态文件远程存储的问题,我们在  Azure DevOps Pipeline 的 Task Job ...