es6中的promise对象

Promise是异步里面的一种解决方案,解决了回调嵌套的问题,es6将其进行了语言标准,同意了用法,提供了`promise`对象, promise对象有三种状态:pending(进行中) 、Resolved(已经完成)和Rejected(已失败)

ES6规定,Promise对象是一个构造函数,用来生成Promise实例。

var promise=new Promise(function(resove,reject){
     if (/* 异步操作成功 */){
    resolve(value);
  } else {
    reject(error);
  }
})

Promise实例生成以后,可以用then方法分别指定Resolved状态和Reject状态的回调函数。

promise.then(function(value) {
  // success
}, function(error) {
  // failure
});

案例

var promise=new Promise(function(resolve,reject){
         console.log(‘promise‘);
     })
     promise.then(function(){
        console.log(‘我后执行‘)
     })
     console.log(‘我先执行‘)

//上面代码中,Promise新建后立即执行,所以首先输出的是“Promise”。然后,then方法指定的回调函数,//将在当前脚本所有同步任务执行完才会执行,所以“我后执行” 最后输出。

ajax

 1      var getJSON=function(url){
 2         var promise=new Promise(function(resolve,reject){
 3             var xhr=new XMLHttpRequest();
 4             xhr.open(‘get‘,url);
 5             xhr.onreadystatechange=handler;
 6             xhr.send(null);
 7
 8             function handler(){
 9                 if(this.readystate!==4){
10                     return;
11                 }
12                 if(this.status==200){
13                     resolve(this.responseText)
14                 }else{
15                     reject(new Error(this.statusText));
16                 }
17             }
18         })
19           return promise;
20      }
21     getJSON("/get.json").then(function(json) {
22       console.log(‘Contents: ‘ + json);
23     }, function(error) {
24       console.error(‘出错了‘, error);
25     });

时间: 2024-12-15 01:48:00

es6中的promise对象的相关文章

angular学习笔记(二十八-附2)-$resource中的promise对象

下面这种promise的用法,我从第一篇$http笔记到$resource笔记中,一直都有用到: HttpREST.factory('cardResource',function($resource){ return $resource('/card/user/:userID/:id',{userID:123,id:'@id'},{charge:{method:'POST',params:{charge:true},isArray:false}}) }); HttpREST.factory('h

ES6中的Promise

Promise作为ES6中最重要的特性之一,我们有必要掌握并理解透彻.本文将由浅到深,讲解Promise的基本概念与使用方法. 1.1ES6 Promise 先拉出来遛遛 复杂的概念先不讲,我们先简单粗暴地把Promise用一下,有个直观感受.那么第一个问题来了,Promise是什么玩意呢?是一个类?对象?数组?函数? 别猜了,直接打印出来看看吧,console.dir(Promise),就这么简单粗暴. 这么一看就明白了,Promise是一个构造函数,自己身上有all.reject.resol

ES6学习笔记--promise对象

Promise是异步编程的一种解决方案,比传统的解决方案--回调函数和事件更合理和更强大.它由社区最早提出和实现,ES6将其写进了语言标准,统一了用法,原生提供了Promise对象. Promise对象有以下两个特点. (1)对象的状态不受外界影响.Promise对象代表一个异步操作,有三种状态:Pending(进行中).Resolved(已完成,又称 Fulfilled)和Rejected(已失败).只有异步操作的结果,可以决定当前是哪一种状态,任何其他操作都无法改变这个状态.这也是Promi

通过一道笔试题浅谈javascript中的promise对象

因为前几天做了一个promise对象捕获错误的面试题目,所以这几天又重温了一下promise对象.现在借这道题来分享下一些很基础的知识点. 下面是一个面试题目,三个promise对象捕获错误的例子,返回结果有什么不同. //使用throw添加错误事件 var p = new Promise(function(resolve, reject) { resolve("ok"); throw new Error('error0'); //setTimeout(function() { thr

[转]JS - Promise使用详解2(ES6中的Promise)

原文地址:https://www.hangge.com/blog/cache/detail_1638.html 2015年6月, ES2015(即 ECMAScript 6.ES6) 正式发布.其中 Promise 被列为正式规范,成为 ES6 中最重要的特性之一. 1,then()方法 简单来讲,then 方法就是把原来的回调写法分离出来,在异步操作执行完后,用链式调用的方式执行回调函数. 而 Promise 的优势就在于这个链式调用.我们可以在 then 方法中继续写 Promise 对象并

ES6学习之Promise对象

1.什么是Promise对象? Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大.原生提供了Promise 对象.Promise 简单说就是一个容器,里面保存着之后才执行的事件.从语法层面来说,Promise 是一个对象,从它可以获取异步操作的消息.Promise 提供统一的 API,各种异步操作都可以用同样的方法进行处理. 2.Promise对象的特点 (1)首先Promise对象的状态不受外界影响.其次promise对象代表一个异步操作,有三种状

自己实现ES6中的Promise API

Promise API是ES6的推荐标准,该API是由各JavaScript的执行引擎在底层,通常是使用C++语言实现的 为了更好地理解Promise API的使用方法并探究其可能的实现方式,笔者在JavaScript层面对Promise API进行了实现. 该实现只是作为实验.学习使用,虽然与内置的实现功能相同,但是在设计和运行效率上肯定是不能相提并论. 我也希望之后能对自己的实现进行改善. 该实现在处理异步任务时,采用了轮询的方式来检测其状态的变化. 具体代码如下(注:笔者采用Node方式进

ES6中的promise、async、await用法详解

<!DOCTYPE html> <html> <head> <title>Promise.async.await</title> </head> <body> <script type="text/javascript"> //promise用法(返回异步方法返回的数据,resolve获取数据成功后调用的方法, reject获取数据失败后调用的方法) //第一种写法 var p = new

ES6中对Promise解析

在JavaScript中,所有代码都是单线程执行的. 1.测试浏览器是否支持Promise 'use strict'; new Promise(function(){}); console.log('支持Promise!'); 2. <!-- Axios是一个基于promise的HTTP库,可以用在浏览器 和node.js中 --> <script src="https://cdnjs.cloudflare.com/ajax/libs/axios/0.19.0/axios.mi