简介

主要介绍Promise新特性的概念和使用。

概念:
Promise是ES6引入的异步编程的新解决方案,语法上Promise是一个构造函数,用来封装异步操作(也就是回调函数)。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Promise学习</title>
</head>
<body><script>const p = new Promise(function(resolve,reject){//创建一个Promise实例对象,传入一个函数,函数由两个参数,分别是//1. resolve:也是一个函数对象,调用这个说明成功。//2. reject:也是一个函数对象,调用这个说明失败。//3. 或者throw抛出异常会判定为失败//4. 不执行resolve并且不执行reject,返回一个非Promise实例,也是成功。//先试试成功resolve("我成功啦");//再试试失败//reject("我失败啦");}).then(//then方法设置成功和失败的回调函数,第一个函数是成功,第二个函数的失败function(value){//console.log("成功:",value);},function(reason){console.log("失败:",reason);})</script>
</body>
</html>

再注释掉resolve方法,调用reject方法。


效果:

then方法用于设置成功回调和失败回调,该方法的返回值是也是一个Promise实例,所以可以直接链式调用then,达到一条回调链。

效果:

验证返回Promise,并在该实例中实现成功。

效果:

验证返回Promise并使得失败:

效果:

promise由一个catch方法,是一个语法糖,当then函数不想设置成功回调,只想设置失败回调时,还是需要传递一个成功回调函数,尽管里面时空函数,第二个函数才是失败回调,这种情况下then就略显麻烦,此时可以不使用then,直接使用catch,传入一个回调函数,这个就是失败回调。

JavaScript学习之ES6学习之Promise相关推荐

  1. 【JavaScript 教程】ES6 中的 Promise对象 详解

    [JavaScript 教程]ES6 中的 Promise对象 详解 1.Promise对象含义 promise是异步编程的一种解决方法. 所谓promise,简单说是一个容器,里面保存着某个未来才会 ...

  2. JavaScript 学习笔记-- ES6学习(一)介绍以及Babel的使用

    本文摘自阮一峰老师的<ECMAScript 6入门>,原文地址:http://es6.ruanyifeng.com/#docs/intro ECMAScript 6 是一个泛指,含义是5. ...

  3. JavaScript学习笔记 -- ES6学习(三) 变量的解构赋值

    1.解构赋值的定义 在ES6中,允许按照一定模式,从数组和对象中提取值(所谓解构),然后对变量进行赋值. var a = 1; var b = 2; var c = 3;//等价于var [a, b, ...

  4. 重新回头学习归纳ES6的知识点-------promise(承诺)

    概述: 是异步编程的一种解决方案.解决异步回调问题. 从语法上说,Promise 是一个对象,从它可以获取异步操作的消息. 特点: 对象的状态不受外界影响.   Promise对象代表一个异步操作,有 ...

  5. javascript的ES6学习总结(第三部分)

    1.ES6中的面向对象的类 1.1.定义类 在ES5中,我们写一个类,通常是这么写的 function Person(name,age){this.name = name;this.age = age ...

  6. ES6学习(八)—Promise对象 超鸡重要

    ES6学习(八)-Promise对象,超鸡重要 必须要会 Promise对象:代表了未来某个将要发生的事情(通常是一个异步操作) 有了Promise对象,可以将异步操作以同步的流程表达出来,避免了层层 ...

  7. 【ES6】阮一峰ES6学习之Promise(一)

    Promise 一.含义 1. 概念 2. 特点 3. 基本用法 4. 为什么要用 Promise 1. 指定回调函数的方式更加灵活 2. 支持链式调用,可以解决回调地狱的问题 用Promise实现A ...

  8. ES6学习——一文搞懂ES6

    ES6学习--一文搞懂ES6 es6介绍 ES全称EcmaScript,是脚本语言的规范,而平时经常编写的EcmaScript的一种实现,所以ES新特性其实就是指JavaScript的新特性. 为什么 ...

  9. ES6学习第六篇--生成器(Generator)

    Generator 函数组成 Generator 有两个区分于普通函数的部分: 一是在 function 后面,函数名之前有个 * : 函数内部有 yield 表达式. 其中 * 用来表示函数为 Ge ...

最新文章

  1. JavaScript为unicode编码转换为中文
  2. Dozer 使用总结
  3. 基于单片机自动升旗系统_基于视觉定位的机器人全自动冲击系统
  4. aop在项目中的实际运用_mypy在实际项目中的应用
  5. 关闭mysql权限管理_MySQL系列:用户及权限管理
  6. 在组织中管理 Windows Hello 企业版
  7. jsonArray:JavaBean,List,Map转成json格式(轉+整理)
  8. WSGI协议主要包括server和application两部分:
  9. 基础总结篇之七:ContentProvider之读写短消息
  10. 《前沿视点》——2013年最值得关注的网页设计流行趋势
  11. 服务器gpt安装系统bios设置,系统安装的两种模式:UEFI+GPT、BIOS+MBR-网络教程与技术 -亦是美网络...
  12. android 贴吧列表,Android仿百度贴吧客户端Loading小球
  13. mysql front登陆1045错误_解决MySQL-Front连接MySQL出现1045错误
  14. xftp显示隐藏的文件夹及传输文件发生错误问题
  15. 计算机简历中的附加信息怎么填,善用简历附加信息体现你的好
  16. zzuli 2631: B(树链剖分)
  17. 利用C语言 计算一个数组内的平均值
  18. 天津轻工职业技术学院计算机专业怎么样,天津轻工职业技术学院可以转专业吗,天津轻工职业技术学院新生转专业政策...
  19. 第六章软件项目配置管理
  20. SpringBoot整合流行框架(上) 究其原理 去其糟粕 如何快速上手所有流行框架整合的方法一文足以~

热门文章

  1. 悲情天才沃尔特·皮兹
  2. 《天天数学》连载27:一月二十七日
  3. Java讲课笔记06:选择结构与条件循环
  4. Go程序:演示map用法
  5. 【BZOJ4600】硬币游戏,博弈
  6. matlab中nc文件,教程合集 | MATLAB文件读写(以nc与txt为例)
  7. 2017.9.29 数三角形 思考记录
  8. 2017.8.17 陌上花开 思考记录
  9. 【英语学习】【WOTD】pungle 释义/词源/示例
  10. Azkaban 进程和任务监控(任务状态从MySQL同步到SqlServer)