js中promise的用法
promise
promise是ES6引进的异步编程解决方案,是一个构造函数,可以实例化对象,可以解决回调地狱的问题。
首先我们看一下promise的实例化对象是什么
let P = new Promise(function(){});//new一个promise传入一个函数console.log(P);
打印结果:
可以看到promise是一个对象 有自己的原型,有then,catch等方法
promise的参数
promise的参数是一个函数 这个函数有两个参数 分别是reject(失败的回调)和resolve(成功的回调)。
resolve的用法:
let P = new Promise(function(resolve ,reject ){/*函数体执行完之后调用resolve*/resolve('成功')});P.then((res)=>{console.log(res);})
打印结果:
在函数体执行完之后调用resolve(),结果会走then()方法
reject的用法
let P = new Promise(function(resolve ,reject ){/*还是执行完之后调用reject*/reject('错误')});P.catch(function(err){console.log(err);})
打印结果:
在函数体执行完之后调用reject(),结果会走catch()方法
promise的then方法使用:
浏览器编译遇见then()方法调用promise实例,并在函数调用resolve()之后编译then()中的函数体
var num = 1;let P = new Promise(function (resolve, reject) {setTimeout(function () {num = 2;resolve();}, 2000);});P.then(function (res) {console.log(num); // 浏览器编译遇见then()方法会走promise函数体 在函数体调用resolve()之后再编译then()的函数体 两秒之后num重新赋值为2 此时为2});console.log(num); // 直接打印num 此时为1
promise的catch方法使用:
用法和then()一样
在浏览器编译遇到reject()时调用。
promise的all方法使用:
let P = new Promise(function (resolve, reject) {setTimeout(function () {resolve();}, 2000);});let P2 = new Promise(function (resolve, reject) {setTimeout(function () {resolve();}, 5000);});Promise.all([P, P2]).then(function () {alert(111);// 5秒之后弹出 });
all()方法传入一个数组,这个数组的元素是多个promise实例,在所有实例执行完之后执行then()方法。
js中promise的用法相关推荐
- JS中Promise函数then的奥秘探究
JS中Promise函数then的奥秘探究 Promise概述 Promise对象是CommonJS工作组提出的一种规范,目的是为异步操作提供统一接口. 那么,什么是Promises? 首先,它是一个 ...
- JS中typeof的用法
转载自 JS中typeof的用法 js是一门弱语言,它在声明变量时无需确定变量的类型,js在运行时会自动判断.那么如何判断一个变量的类型呢,js提供了typeof运算符,用来检测一个变量的类型. 1 ...
- php function函数用法,js的function函数是什么?js中function的用法
本篇文章给大家带来的内容是关于js的function函数是什么?js中function的用法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. Function与函数 Function是 ...
- append和appendTo的区别以及js中的appendChild用法
append和appendTo的区别以及js中的appendChild用法 很多像我一样接触JS没多久的小白对append和appendTo的区别以及js中的appendChild用法都会有所模糊,下 ...
- js中indexOf的用法详解
js中indexOf的用法详解 String.IndexOf 方法 (Char, [startIndex], [count]) 报告指定字符在此实例中的第一个匹配项的索引.搜索从指定字符位置开始,并检 ...
- js控制页面滚动到指定位置,js中scrollIntoView()的用法
js中scrillIntoView()的用法--页面滚动到指定位置 最近遇到一个问题,在一个页面上,点击某个按钮时,滚动到页面的某一位置. 如图: 如果是我写的话,我可能会先获取滚动到的元素,然后获取 ...
- js中return的用法
js中return的用法 今天看到一篇文章,介绍的是js中return的用法,感触很深.(类似于JAVA return) 在大多数情况下,为事件处理函数返回false,可以防止默认的事件行为.例如,默 ...
- innerHTML连接指定HTML文件,js中innerhtml的用法
js中innerHTML与innerText的用法与区别 js中innerHTML的用法: innerHTML可获取或设置指定元素标签内的 html内容,从该元素标签的起始位置到终止位置的全部内容(包 ...
- JS中reduce的用法
JS中reduce的用法 前言 语法 举例 reduce的应用 总结 前言 reduce() 方法对数组中的每个元素执行一个由您提供的reduce函数(升序执行),将其结果汇总为单个返回值.reduc ...
最新文章
- 水木-搜索引擎技术版
- 如何让搜索引擎抓取AJAX内容
- CAN收发器SN65HVD230,实际应用案例分析
- java 课后习题 二维坐标距离 三角形判断等
- Better Explained 以通俗易懂的语言阐释数学
- s3cmd常用命令和使用技巧
- 基于蒙特卡洛的大规模电动汽车充电行为分析(Matlab代码实现)
- cad lisp 背景遮罩_单行文字转多行文字带背景遮罩
- A卡福利 : AMD Fluid Motion Video补帧教程,让你的视频从24帧补到60帧(144)
- exynos 4412 电源管理芯片PMIC 的配置及使用方法
- [vue3.x]实战问题--Extraneous non-props attributes
- 【PHP】关于系统性能追踪工具molten
- 常用函数式接口及Stream流
- 超过1M的网络动图添加到微信表情包
- MD5 标准算法详解
- indesign选中不了图片删除_图片神器XnView教程、方法和技巧汇总
- 连目标管理都不会,还谈什么目标?
- linux 串口 lsr 0xc9,linux 串口驱动(三)
- 新年优惠不断档,邀请好友还能获得腾讯视频会员及Q币!
- 任何收获都不是偶然
日复一日的付出和努力
一点一滴的进步,
热门文章
- android bitmap设置透明度,Android 设置图片 Bitmap任意透明度
- android音乐播放器实现,Android实现简单音乐播放器(MediaPlayer)
- “Z医生,我明天的手术,成功率有多高?”
- 外国程序员整理的Java资料大全
- 什么是SWFObject,如何使用!
- 布袋除尘器过滤风速多少_袋式除尘器过滤风速一般多大
- Mysql tinyint(1)与tinyint(4)的区别
- MobPush创建推送
- java通过jstack命令查询日志深入理解
- Spring BlazeDS Integration 的工作原理