博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
es6学习--promise对象
阅读量:4497 次
发布时间:2019-06-08

本文共 1236 字,大约阅读时间需要 4 分钟。

     所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。从语法上说,Promise 是一个对象,从它可以获取异步操作的消息。

  

  1.基本用法

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

function timeout(ms){    return new Promise((resolve,reject) =>{        setTimeout(resolve, ms,'done')    })}timeout(100).then((value)=>{    console.log(value);})

Promise构造函数接受一个函数作为参数,该函数的两个参数分别是resolvereject。它们是两个函数,由 JavaScript 引擎提供,不用自己部署。

esolve函数的作用是,将Promise对象的状态从“未完成”变为“成功”(即从 Pending 变为 Resolved),在异步操作成功时调用,并将异步操作的结果,作为参数传递出去;reject函数的作用是,将Promise对象的状态从“未完成”变为“失败”(即从 Pending 变为 Rejected),在异步操作失败时调用,并将异步操作报出的错误,作为参数传递出去。

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

   

2.Promise 新建后就会立即执行。

let promise = new Promise((resolve,reject) => {    console.log("1");    resolve();  // 调用promise.then})promise.then(function(){    console.log('3');})console.log("2");        // 1 2 3

 

3.Promise.prototype.then()

  它的作用是为 Promise 实例添加状态改变时的回调函数。

then方法返回的是一个新的Promise实例(注意,不是原来那个Promise实例)。因此可以采用链式写法,即then方法后面再调用另一个then方法。

let promise = new Promise((resolve,reject) => {    console.log("1");    resolve();  // 调用promise.then})promise.then(function(){    console.log('3');}).then(() => {    console.log("2");}).then(() => {    console.log("4");})// 1 3 2 4

 

转载于:https://www.cnblogs.com/wjylca/p/7452686.html

你可能感兴趣的文章
并查集的实现
查看>>
Leetcode 350. Intersection of Two Arrays II
查看>>
EditPlus VC2010 and 2008 C/C++配置
查看>>
Practical Lessons from Predicting Clicks on Ads at Facebook
查看>>
JFrame面板
查看>>
Android自动化压力测试之Monkey Test 异常解读(五)
查看>>
Compressing Convolutional Neural Networks in the Frequency Domain 论文笔记
查看>>
设计模式:单例和多例
查看>>
Myslq 之修改数据库
查看>>
maven工程转为web工程时没有add web project capabilities选项的解决办法
查看>>
[BZOJ1192][HNOI2006]鬼谷子的钱袋
查看>>
Linux系统基础优化
查看>>
小程序开发快速入门教程(附源码)
查看>>
基于cropper.js的图片上传和裁剪
查看>>
车联网SaaS平台多租户平台技术选型参考
查看>>
我是如何快速积累工作经验
查看>>
用信号量进程同步与互斥
查看>>
随笔1
查看>>
Codeforces Round #469 (Div. 2)
查看>>
JavaScript:Number 对象
查看>>