背景 周末闲来无事,随便翻看了一下阮一峰老师的<ES6 标准入门>第2版,ps:之前在阮一峰老师的官网看过电子版,感觉干货满满,所以就买了纸质版:当看到第16章第4节 'Promise.prototype.catch()'时,遇到了一个小困惑,下面我们来一起看一下 开胃汤 首先,Promise.prototype.catch方法是用来'捕获Promise回调函数中自然发生或主动抛出的错误',何为自然发生?何为主动抛出? 自然发生的错误: function a() { var x = 1; co…
Deferred 和 Promise ES6 和 jQuery 都有 Deffered 和 Promise,但是略有不同.不过它们的作用可以简单的用两句话来描述 Deffered 触发 resolve 或 reject Promise 中申明 resolve 或 reject 后应该做什么(回调) 在 jQuery 中 var deferred = $.Deferred(); var promise = deferred.promise(); 在 ES6 中 var deferred = Pro…
最近在学习es6的Promise,其中涉及到了Promsie的事件执行机制,因此总结了关于Promise的执行机制,若有错误,欢迎纠错和讨论. 在阮一峰老师的书中<es6 标准入门>对Promise的基础知识做出了详细的介绍,在此就不一一介绍了,直接开始整体,将Promsie中关于事件执行机制的问题与大家分享. 1.Promsie对象的创建以及执行顺序 创建方式:new Promise(function(resolve,reject){ //...} 这种方式在阮老师的书中指出该函数一旦创建,…
构造函数 new Promise(function(resolve, reject){}); 构造函数接受一个函数(executor)作为参数,该函数在返回 Promise 实例之前被调用.函数的两个参数分别是 resolve 和 reject 函数. 如果 executor 函数执行中抛出异常,则 Promise 视为 rejected. executor 函数返回值没有意义. 类方法 Promise.all(iterable) 类似于 jQuery.when() 方法,只有 iterable…
 Promise是什么??    打印出来看看  console.dir(Promise) 这么一看就明白了,Promise是一个构造函数,自己身上有all.reject.resolve这几个眼熟的方法,原型上有then.catch等同样很眼熟的方法.这么说用Promise new出来的对象肯定就有then.catch方法喽,没错.   那就new一个玩玩吧. var p = new Promise(function(resolve, reject){ //做一些异步操作 setTimeout(…
转载:点击查看原文 ES6 Promise对象 ES6中,新增了Promise对象,它主要用于处理异步回调代码,让代码不至于陷入回调嵌套的死路中. @-v-@ 1. Promise本质 Promise本质上是一个 函数 ,更确切地说,它是一个 构造器 ,专门用来构造对象的. 它接受一个函数作为参数,并返回一个对象,大致情况如下: function Promise( fn ){ // var this = {} // Object.setPrototypeOf(this, Promise.prot…
最近越来越喜欢与大家进行资源分享了,并且及时的同步到自己的园子内,为什么呢? 一.小插曲(气氛搞起) 在上个月末,由于领导的高度重视(haha,这个高度是有多高呢,185就好了),走进了公司骨干员工的队列,并参与为骨干员工准备的“高效能人士的七项修炼”课程培训. 那接下来我是不是该简明扼要的说一下七项修炼有哪些,很受用哦. 七项修炼之一:积极主动 ==> 积极心态去处理事情.不怕事. 七项修炼之二:明确方向 ==> 要做到以终为始,将终点作为起点,帮助你实现生活与工作中的重要目标. 七项修炼之…
ES6 Promise 概念之类的,大概读者都应该有所知道,接下来我们直入终点. 先让我们来看看什么是Promise吧,他是一个object,类,arry,function? 首先,学习它的时候应该讲其打印出来,看看到底是个什么如图下: 原来如此,是一个构造函数,里面有all.reject.resolve这几个眼熟的方法,原型上有then.catch等同样很眼熟的方法: 接下来正题开始: 创造一个pro对象,使用构造函数Promise来构造,里面有一个参数,以函数的形式,函数里面一个定时器,原始…
Promise的兴起,是因为异步方法调用中,往往会出现回调函数一环扣一环的情况.这种情况导致了回调金字塔的出现.不仅代码写起来费劲不美观,而且问题复杂的时候,阅读代码的人也难以理解. db.save(data, function(data){ // do something... db.save(data1, function(data){ // do something... db.save(data2, function(data){ // do something... done(data…
一.Promise是什么? Promise 是异步编程的一种解决方案: 从语法上讲,promise是一个对象,从它可以获取异步操作的消息:从本意上讲,它是承诺,承诺它过一段时间会给你一个结果. promise有三种状态:pending(等待态),fulfiled(成功态),rejected(失败态):状态一旦改变,就不会再变.创造promise实例后,它会立即执行.   回调嵌套很多时,代码就会非常繁琐,会给我们的编程带来很多的麻烦,这种情况俗称——回调地狱. const request = u…