es6 promise 简单总结

话不多说,直捣主题。

promise用途:异步编程的一种解决方案。

优点:比传统的解决方案——回调函数和事件——更合理和更强大。

三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败)。

基本用法:

const promise = new Promise(function(resolve, reject) {
    resolve(value);//表示异步操作成功
    reject(error);//表示异步操作失败
});

promise常用的几个方法:

promise.then(value => {},error => {});//异步状态为成功时调用第一个函数,为失败时调用第二个函数。then方法的第二个参数可选。

promise.catch(error => {});//异步状态为失败时调用。

或者promise.then(value => {},error => {}).catch(error => {});//promise异步状态为失败时或then方法中抛出错误都会执行catch方法。

promise.finally(() => {});//不管状态如何都会执行的操作。

以上就是我对promise的简单总结,欢迎大牛们的疑问或指正。

原文地址:https://www.cnblogs.com/fanyanzhao/p/10346443.html

时间: 2024-08-01 23:24:45

es6 promise 简单总结的相关文章

ES6 promise简单实现

基本功能实现: function Promise(fn){ //需要一个成功时的回调 var doneCallback; //一个实例的方法,用来注册异步事件 this.then = function(done){ doneCallback = done; } function resolve(){ doneCallback(); } fn(resolve); } 参考文章: 1.手把手教你实现一个完整的 Promise 2.教你一步一步实现一个Promise - 飞魚 3.剖析 Promise

Es6 Promise 用法详解

Promise是什么?? 打印出来看看  console.dir(Promise) 这么一看就明白了,Promise是一个构造函数,自己身上有all.reject.resolve这几个眼熟的方法,原型上有then.catch等同样很眼熟的方法.这么说用Promise new出来的对象肯定就有then.catch方法喽,没错. 那就new一个玩玩吧. var p = new Promise(function(resolve, reject){ //做一些异步操作 setTimeout(functi

ES6 Promise 异步操作

最近越来越喜欢与大家进行资源分享了,并且及时的同步到自己的园子内,为什么呢? 一.小插曲(气氛搞起) 在上个月末,由于领导的高度重视(haha,这个高度是有多高呢,185就好了),走进了公司骨干员工的队列,并参与为骨干员工准备的"高效能人士的七项修炼"课程培训. 那接下来我是不是该简明扼要的说一下七项修炼有哪些,很受用哦. 七项修炼之一:积极主动 ==> 积极心态去处理事情.不怕事. 七项修炼之二:明确方向 ==> 要做到以终为始,将终点作为起点,帮助你实现生活与工作中的重

通过 ES6 Promise 和 jQuery Deferred 的异同学习 Promise

Deferred 和 Promise ES6 和 jQuery 都有 Deffered 和 Promise,但是略有不同.不过它们的作用可以简单的用两句话来描述 Deffered 触发 resolve 或 reject Promise 中申明 resolve 或 reject 后应该做什么(回调) 在 jQuery 中 var deferred = $.Deferred(); var promise = deferred.promise(); 在 ES6 中 var deferred = Pro

promise简单实现分步操作

刚入前端不到一年,还记得去一家公司面试,当时还没有接触到ES6,更不要说在工作中运用了,对于promise也只是停留在瞄了一眼某文档.当时记得面试官是这样问的,js实现先干完事情1.然后事情2.最后事情3.当时想了一下就用es5事件地狱回调手写了一下这个问题, 123456789 function () { do something1 function step2() { dong something2 function step3 (){ do something3 } }} 当时嘴欠提了一下

ES6 Promise对象(七)

一.Promise介绍1.Promise简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果2.Promise可以将异步操作以同步操作的流程表达出来,避免了层层嵌套的回调函数.此外,Promise对象提供统一的接口,使得控制异步操作更加容易 二.基本用法[使用时注意环境及异步操作相关包安装]在node环境中使用ajax时需要安装jsdom.jqury包配置常量: //创建window环境 const {JSDOM} = require('jsdom'); const

ES6 Promise 对象

es6 Promise 对象是异步编程的一种解决方案.(在javascript世界里,是单线程顺序执行的)从语法上说,Promise 是一个对象,从它可以获取异步操作的消息. Promise 异步操作有三种状态:pending(进行中).fulfilled(已成功)和 rejected(已失败).除了异步操作的结果,任何其他操作都无法改变这个状态.Promise 对象只有:从 pending 变为 fulfilled 和从 pending 变为 rejected 的状态改变.只要处于 fulfi

js中的Promise简单总结(ES6)

例如: 使用回调函数的写法: 使用Promise对象之后的写法: Promise的作用:把回调函数写法分离出来,在异步操作执行完后,用链式调用的方法执行回调函数,对于多层回调来说,非常的方便. 再看如下例子: 此时控制台会输出 'aa'  这个结果 此时控制台还是只有 'aa'  这个结果 此时控制台就会有  'aa'  和  'bb'   这两个结果. 也就是说把回到函数写在 then里面,进行链式调用,分离开来.代码看起来更加清晰. 未完,待总结. 原文地址:http://blog.51ct

你是否也在学习ES6 Promise时遇到过这个问题?

背景 周末闲来无事,随便翻看了一下阮一峰老师的<ES6 标准入门>第2版,ps:之前在阮一峰老师的官网看过电子版,感觉干货满满,所以就买了纸质版:当看到第16章第4节 'Promise.prototype.catch()'时,遇到了一个小困惑,下面我们来一起看一下 开胃汤 首先,Promise.prototype.catch方法是用来'捕获Promise回调函数中自然发生或主动抛出的错误',何为自然发生?何为主动抛出? 自然发生的错误: 1 function a() { 2 var x = 1