ES6 - 基础学习(8): Promise 对象】的更多相关文章

概述 Promise是异步编程的一种解决方案,比传统的解决方案(多层嵌套回调.回调函数和事件)更强大也更合理.从语法上说,Promise是一个对象,从它可以获取异步操作的消息,Promise 还提供了统一的 API,各种异步操作都可以用同样的方法进行处理. Promise的出现很好的解决了回调地狱这一难题,在之前ES5中多层嵌套回调时,回调代码层次过多,嵌套太深,时间久了既不利于相关代码的理解也不利于代码后期维护以及后续迭代开发,因此Promise才尤为重要. Promise状态 状态特点: 1…
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" con…
Promise对象是为了简化异步编程.解决回调地狱情况 Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果.从语法上说,Promise 是一个对象,从它可以获取异步操作的消息. Promise对象用于延迟(deferred) 计算和异步(asynchronous ) 计算.一个Promise对象代表着一个还未完成,但预期将来会完成的操作. Promise是一个对象,可以用构造函数来创建一个Promise实例. let promise = new Pr…
1.产生原因 在前端开发中,最常见的的就是"回调",我相信很多人对于这个"回调"可谓是印象深刻呢.究其原因是因为层层回调会造成所谓的“回调地狱 (callback hell)”(最明显的就是代码的层层嵌套) 2.解决办法 实解决回调地狱的办法有很多,从代码书写层面就可以将绝大部分回调代码写的尽量简单易懂.这里主要是关于Promise 的. Promise自 ES6 起成为 Javascript 的语言标准.但是其最早是由 Javascript 社区提出并实现的.Pr…
1.Promise实例具有then方法,也就是说,then方法是定义在原型对象Promise.prototype上的.它的作用是为Promise实例添加状态改变时的回调函数. 2.Promise.prototype.catch方法是.then(null, rejection)的别名,用于指定发生错误时的回调函数. 3.Promise 对象的错误具有“冒泡”性质,会一直向后传递,直到被捕获为止.也就是说,错误总是会被下一个catch语句捕获. 4.一般来说,不要在then方法里面定义Reject状…
1.Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大. 2.所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果.从语法上说,Promise 是一个对象,从它可以获取异步操作的消息. 3.对象的状态不受外界影响.Promise对象代表一个异步操作,有三种状态:Pending(进行中).Resolved(已完成,又称 Fulfilled)和Rejected(已失败).只有异步操作的结果,可以决定当前是哪一…
对象对于JavaScript至关重要,在ES6中对象又加了很多新特性. 对象字面量:属性的简洁表示法 ES6允许对象的属性直接写变量,这时候属性名是变量名,属性值是变量值. let attr1 = "ES6"; let attr2 = 'testDemo'; let testObj = {attr1, attr2}; // console.log(testObj); // Object {attr1: "ES6", attr2: "testDemo&quo…
ECMAScript 6 标准入门 一.let和const let命令 let命令,用来声明变量.它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效:是块级作用域,且let不允许在相同作用域内,重复声明同一个变量. { let a = 12; } console.log(a); //Uncaught ReferenceError: a is not defined { let a = 12; let a = 22; } console.log(a); //Uncaught…
现在Chrome浏览器已经很好的支持ES6了,但有些低版本的浏览器或其他浏览器还是不支持ES6的语法,因此实际项目开发或上线过程中就需要把ES6的语法转变成ES5的语法.项目开发过程中 Webpack 有自动编译转换功能,因此免去了环境搭建这一步.但除了Webpack自动编译外,我们还可以用Babel来完成编译.下面搭建一个基本的ES6开发环境. 一.全局安装babel-cli 在CMD终端命令行 或 代码编辑工具(vscode.webstorm) 终端中 输入以下命令,全局安装babel-cl…
这里就不再讲面向对象的相关概念知识或者与面向过程的比较了,直接进入类的学习 1.类的创建 class people: def __init__(self):#构造函数 pass sfencs=people()#类的实例 2.封装 class people: def __init__(self,name,age): self.name=name self.age=age sfencs=people("sfencs",19) print("%s is %d"%(sfen…
二进制和八进制数值表示法 ES6提供了二进制和八进制数值的新写法,分别前缀 0b(或0B). 0o(或0O)然后跟上二进制.八进制值即可. 二进制(Binary)表示法新写法:前缀 0b 或 0B. let binary = 0b010101; let binary2 = 0B010111; 八进制(Octal)表示法新写法:前缀 0o 或 0O. let octal = 0o123; let octal2 = 0O1234; 从ES5开始,严格模式下,八进制数值就不再允许用前缀0表示,ES6则…
解构赋值概述 1.解构赋值是对赋值运算符的扩展. 2.它是一种针对数组或者对象进行模式匹配,然后对其中的变量进行赋值. 3.代码书写上显得简洁且易读,语义更加清晰明了:而且还方便获取复杂对象中的数据字段. 解构模型 在解构赋值操作过程中,有下面两部分参与: 1.解构的源:解构赋值表达式的右边部分.如 let a = 1; 2.解构的目标:解构赋值表达式的左边部分.如 let a = 1; JavaScript 数据类型 基本数据类型(值类型):字符串(string).数字(number).布尔(…
一.序列化和反序列化的概念 把对象转换为字节序列的过程称为对象的序列化. 把字节序列恢复为对象的过程称为对象的反序列化. 对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中: 2) 在网络上传送对象的字节序列. 在很多应用中,需要对某些对象进行序列化,让它们离开内存空间,入住物理硬盘,以便长期保存.比如最常见的是Web服务器中的Session对象,当有 10万用户并发访问,就有可能出现10万个Session对象,内存可能吃不消,于是Web容器就会把一些s…
一.继承 1.1.继承概念 将对象的共性抽取出来.提取出一个单独的类. 继承使用复用以前的代码非常容易,能够大大的缩短开发周期,降低开发成本,同时增加程序的易维护性 继承使重一个类A能够直接使用另外一个类B的属性和方法的一种途径 类A可以有自己的属性和方法通过 extends 关键字让类与类之间产生继承关系. 让类和类之间产生了关系,有了这个关系,才有了多态的特性. 注意:千万不要为了获取其他类的功能,简化代码而继承. 必须是类与类之间有所属关系才可以继承,所属关系是 is  a.的关系 1.2…
一.static关键字 1.1.static关键字 静态:static用法:是一个修饰符,用于修饰成员(成员变量,成员函数)static 修饰的内容,所有对象共享当成员被静态修饰后,就多了一个调用方式,除了可以被对象调用外,还可以被类名.静态成员 package com.day06; /** * 人类 * @author Administrator *静态:static *用法:是一个修饰符,用于修饰成员(成员变量,成员函数) *static 修饰的内容,所有对象共享 *当成员被静态修饰后,就多…
一.面向对象   1.1.面向对象的概念    很经典的一句话----------万物皆对象 定义:面向对象一相对面向过程而言的        面向对象和面向过程都是一种思想       面向过程------强调的是功能行为  语言:C语言 面向对象------将功能封装进对象,强调具备了功能的对象. 面向对象是基于面向过程的.   1.2.什么是类   我肯定说,不知道.不清楚. 简单讲类是java中的基本单元,类是具有相同特性和行为的对象集合 1.3.类的定义 class 类名{ 数据类型 …
1.dict 字典对象 a.定义对象 d={'a':14,'b':12}b.通过key获取value d['a'] 方法1.判断key是否存在 if 'a' in d: d['a']方法2:通过用get方法获取 如果不存在则返回none数据d.get('a'); dict 查找速度快 list随着元素的数量的增加变慢dict 占用内存 浪费大量的内容 list占用内存小 查找速度慢dict中的key不能重复 dict 没有顺序 dict的key 是不可以变的 字符串 整数 浮点数都不可变 都可以…
一.序列化和反序列化的概念 把对象转换成字节序列的过程称之为对象的序列化 把字节序列恢复为对象的过程称之为对象的反序列化 对象序列化的主要用途: 1)把对象的字节序列永久的保存到硬盘上,通常放在一个文件中: 2)在网络上传送对象的字节序列. 在很多应用中,需要对某些对象进行序列化,让它们离开内存空间,入住物理硬盘,以便长期保存,比如最常见的是web服务器中的session对象,当有10万用户并发访问的时候,就可能出现10万个session对象,内存可能吃不消,于是web容器就会把一些sessio…
一:面向过程与面向对象的区别 举例:一个人开门的动作,可以分解为开门,人进去,关门. 面向过程:人作为执行者,1:开门  2:进入   3:关门 面向对象:人作为指挥者,将开门,关门的动作都封装到门上面.1:人调用门的打开方法 2:人进入  3:人调用门的关闭方法. 以开汽车为例: 以造汽车为例: 二:对象与类 1:类和对象的概念 2:类的属性和方法(成员变量和成员方法) a:属性(成员变量) b:方法(成员方法) 三:引用数据类型…
一.对象是一种无序的属性集合,每个属性都有自己的名字和值. 1.创建对象 花括号内逗号分隔 var person = { "Name" : "LiCheng", "Age"    : 25 } 2.对象属性 ①用对象名.属性名的方式来访问 ②属性的枚举,利用for/in循环可以遍历一个对象的所有属性 ③检查属性的存在性,利用in运算符可以查看一个属性是否属性一个对象 ④删除属性,利用delete运算符可以删除属性,例如 delete person…
#标准库地址:https://docs.python.org/2/library/marshal.html"""有时候,要把内存中一个对象持久化保存磁盘或者序列化二进制流通过网络发送到远程主机上,python有很多模块提供了序列化与反列化功能,如:marshal, pickle, cPickle等 注意: marshal并不是一个通用的模块,在某些时候它是一个不被推荐使用的模块,因为使用marshal序列化的二进制数据格式还没有文档化,在不同版本的Python中,marsha…
#!/usr/bin/env python # -*- coding:utf-8 -*- class Foo:#定义类 def mail(self,email,message):#定义类的方法 print('发送邮件给%s! 信息:%s'% (email,message)) return True obj = Foo();#创建对象 obj.mail('40365257@qq.com','测试邮件信息123')#对象调用方法 self参数不用赋值,系统自动赋值 #类 对象的封装和调用 class…
class Foo:#定义类 def mail(self,email,message):#定义类的方法 print('发送邮件给%s! 信息:%s'% (email,message)) return True obj = Foo();#创建对象 obj.mail('40365257@qq.com','测试邮件信息123')#对象调用方法 self参数不用赋值,系统自动赋值 #类 对象的封装和调用 class SQLHelper: def fetch(self,sql): #这里的self 指代后…
模板字符串 模板字符串:我理解为将字符串格式化.模板化,将字符串加强处理,此处的模板有动词的意思. 字符串模板基本格式: `xxxxxx`(前后都用反引号[tab键上面按键]引起来).除了作为普通字符串 外:还可以用来定义多行字符串:也可以在字符串中插入变量和表达式,进行字符串内容扩充和计算. 1.普通字符串: let testStr = `ES6 TestDemo`; console.log(testStr); // ES6 TestDemo 2.普通字符串 添加标签.换行符: let tes…
ES6)新增加了两个重要的 JavaScript 关键字:let 和 const.以前声明变量时只有一种方式:var,ES6对声明方式进行了扩展,现在可以有三种声明方式了. 1.var:variable的简写,字面意思就是变量. 2.let:let的意思(vt. 允许,让:出租:假设:妨碍:vi. 出租:被承包:n. 障碍:出租屋) 我理解为出租屋.临时的意思.一种临时变量声明方式,既然是临时变量,则该变量的定义.激活以及作用区域也就只在 let 命令所在的代码块内有效. 3.const:常量.…
Js属性 1. 设置属性 1)  对象. 2)  对象[‘属性名’] 3)   GetAttribute函数 2. 获取属性 1)  变量=对象. 2)  变量=对象[‘属性名’] 3)  GetAttribute函数 点和[]的区别: 1.访问关键字和保留字属性时只能使用[]  2.通过名称遍历属性时只能使用[] obj['class'] //class是保留字,E3是保留字,E5在非严格模式下依然是保留字 obj['for'] //for是关键字 //第5 版对使用关键字和保留字的规则进行了…
1. 面向对象 1.1 概述 面向过程:c语言 面向对象:java :python:C++等等 面向对象的概念: (万物皆对象)------think in java   everything  in an  object 把现实中的事务抽象成由一系列属性和行为组成的结构体(类),每个结构体都有属于自己的功能,在软件开发的过程中,通过对不同功能的结构体进行组合,完成整个软件功能.且结构体可服用 例如;  若要将现实中的飞机抽象成一个对象 首先你要先定义一个飞机类(看到这个名字就知道是飞机),其次…
因为前几天做了一个promise对象捕获错误的面试题目,所以这几天又重温了一下promise对象.现在借这道题来分享下一些很基础的知识点. 下面是一个面试题目,三个promise对象捕获错误的例子,返回结果有什么不同. //使用throw添加错误事件 var p = new Promise(function(resolve, reject) { resolve("ok"); throw new Error('error0'); //setTimeout(function() { thr…
一.AMD和CMD规范(了解) 1.1传统的前端开发多个js文件的关系 yuan.js中定义了一个函数 function mianji(r){ return 3.14 * r * r } main.js文件中调用这个函数: alert(mianji(10)) 在页面上按顺序引入这两个js文件: <html> <head> <title>Document</title> </head> <body> </body> <…
共2页: 1 2 下一页  Java制作证书的工具keytool用法总结 孤傲苍狼 2014-06-24 11:03 阅读:25751 评论:3     Java基础学习总结——Java对象的序列化和反序列化 孤傲苍狼 2014-06-09 16:55 阅读:108858 评论:37     java基础学习总结——接口 孤傲苍狼 2014-04-09 00:39 阅读:9101 评论:4     java基础学习总结——抽象类 孤傲苍狼 2014-04-06 12:22 阅读:4930 评论:…