ES6知识整理(8)--Promise对象
(关于promise,以前并不知道是什么,没这个概念。现在来学习总结下)
es6的异步编程解决方案。需要new新对象操作api。
有3中状态:pending(进行中)、fulfilled(已完成)、rejected(已失效),异步操作才有的状态。
2种状态的改变结果,称为:已定型(resolve):
即可将异步操作变为同步操作,避免层层嵌套回调函数。
promise缺点:
对象创建后会立即执行,中途不可中断。
不设置回调时,将抛出异常,不影响外部执行。
使用方法:
resolve作用:pending-->resolved 传参:异步成功的data
reject作用:pending-->rejected 传参:error对象
若a=true;就会进resolve()函数,then中将会进data
若a=false;就会进reject()函数,then中将会进err。
对象.then()
log输出顺序:1 3 2
new之后直接.then()
log输出顺序:2 1
直接return resolve(),就只执行回调,后面的不再执行。
因为前面return了 所以只会输出1
异步加载图片:
若图片路径存在,则输出value为img对象
若图片路径不存在或错误,则输出err为Error 加载失败
异步操作ajax:
json数据:
getJson函数带上参数url,可以返回该json数据。
若获取到数据,返回数据;
若访问不到数据,进入then的error,打印:
Error at XMLHttpRequest.xhr.onreadystatechange
调用getJson(url),then中成功则进data,失败则进err。
创建一个promise的ajax
创建多重异步(2个then,第2个getJson使用return):
结果:
这个是简洁版本:
结果是一样的(两重异步):
Network中:
一句:别让自己的努力只是感动了自己。
----公众号:海瑞菌
ES6知识整理(8)--Promise对象的更多相关文章
- ES6知识整理(4)--数组的扩展
最近工作比较忙,基本每天都会加班到很晚.处理一些客户端兼容问题以及提升用户体验的优化.也将近一周没更文了,现在继续es6的学习总结. 上篇回顾 ES6知识整理(三)--函数的扩展 扩展运算符 形式是3 ...
- ES6知识整理(9)--class的基本语法
(总结完知识点,出去滑板刷街) promise的catch 上一节promise中漏了一个知识点: promise对象可以使用catch来避免每个then中都加error判断,让错误时都进到catch ...
- ES6系列_14之promise对象的简单使用
1.产生原因 在前端开发中,最常见的的就是"回调",我相信很多人对于这个"回调"可谓是印象深刻呢.究其原因是因为层层回调会造成所谓的“回调地狱 (callbac ...
- ES6 - 基础学习(8): Promise 对象
概述 Promise是异步编程的一种解决方案,比传统的解决方案(多层嵌套回调.回调函数和事件)更强大也更合理.从语法上说,Promise是一个对象,从它可以获取异步操作的消息,Promise 还提供了 ...
- ES6知识整理(5)--对象的扩展
个人开这个公众号的初心是为了积累知识,因此并没有做什么推广,再说自己也不知道怎么推广,推广之后又能干些什么.已经将近10天没发文章了,虽然每天都加班,但也不会一点时间都没有,有时还是会懒癌发作不想学习 ...
- ES6知识整理(1)--let和const命令
最近准备在业余空闲时间里一边学习ES6,一边整理相关知识.只有整理过的学习才是有效的学习.也就是学习之后要使用和整理成文,才是正在的学到了... 那么现在开始 LINK START!(首先是第一讲,前 ...
- ES6知识整理(2)--变量的解构赋值
最近准备在业余空闲时间里一边学习ES6,一边整理相关知识.只有整理过的学习才是有效的学习.也就是学习之后要使用和整理成文,才是真正的学到了... 上一篇是一个试水,现在接上. 变量提升 看了下朋友回复 ...
- ES6知识整理(10)--class的继承
(这是es6的第10篇文章.说真的这样的总结之后虽然直观了许多,但是消耗的时间有点长,或许是知识比较复杂的原因吧) 类的继承 有个A类,B类继承A类,那B类实例就可以使用A类实例的所以属性和方法.不包 ...
- ES6知识整理(3)--函数的扩展
只有整理过的学习才是有效的学习.也就是学习之后要使用和整理成文,才是真正的学到了... 最近上班有点忙的关系,于是文章更新会慢些.只有晚上加完班之后,空余时间才能学习整理.因此完成一篇也可能要几个晚上 ...
随机推荐
- maven 转myeclipse eclipse 项目 命令
我们在网上下载的开源Maven工程想要转换成Eclipse能够识别的工程,需要执行如下命令: Jar工程: mvn eclipse:eclipse 或 mvn eclipse:myeclipse We ...
- 为什么char *name="it",printf("%s",name) 能够输出字符串?
“it”里面是3个字符 “i”“t”“/0”,%s会打印指针指向的字符就是“i”,知道遇到“/0”停止,所以打印出来是“it”
- (转)从拜占庭将军问题谈谈为什么pow是目前最好的共识机制
我们知道基于区块链技术现在有很多的共识机制,包括不限于POW,POS,DPOS,PBFT……,我先不说为什么我最认可POW,我们先来看看著名的拜占庭将军问题: 拜占庭帝国即中世纪的土耳其,拥有巨大的财 ...
- [LeetCode] 364. Nested List Weight Sum II_Medium tag:DFS
Given a nested list of integers, return the sum of all integers in the list weighted by their depth. ...
- node加密解密 crytpo
var crypto = require('crypto'); exports.encrypt = function (str, secret) { var cipher = crypto.creat ...
- Entity Framework学习初级篇1--EF基本概况《转》
最近在学习研究微软的EF,通过这时间的学习研究,感觉这个EF目前来说还不是很完善,半成品.不过,据说在.Net4.0中,微软将推荐使用此框架,并会有所改善.而且,现在基本上所有数据库均提供了对EF的支 ...
- Dockerfile详解(二)
Dockerfile文件详解 什么是dockerfile? Dockerfile是一个包含用于组合映像的命令的文本文档.可以使用在命令行中调用任何命令. Docker通过读取Dockerfile中的指 ...
- andorid CmakeLists
# cmake要求低版本 cmake_minimum_required(VERSION 3.4.1) # Creates and names a library, sets it as either ...
- TP增删改
增加数据 <?php namespace Home\Controller; use Think\Controller; class IndexController extends Control ...
- idea软件上设置爱彼迎字体