Promise学习笔记(一)
来源:互联网 发布:cf检测数据异常 编辑:程序博客网 时间:2024/06/05 03:13
学习笔记(一) Promise
1、什么是 Promise
在英文的概念中,有一个解释为承诺,可以这么理解,你完成了你的面试之后HR给你明确的答复说,你回去等通知结果出来我会给你个答复,然而结果发现总是久久没有结果。但这里的 Promise比这里靠谱得多,不管是成功还是失败都会给你一个结果。
Promise 对象用于异步计算。一个 Promise 表示一个现在、将来或永不可能可用的值。官方说明:promise
2、 Promise解决的的问题
Promise可以用来处理异步请求,从而达到同步运行的效果,举个例子,还是上面的面试,异步的请求在例子中体现在哪里?就是在面试这家公司的时候并不妨碍你继续投简历到其他公司,而同步呢?比如你想:”如果我被这家公司录用了,那么我就去哪家公司上班“。而这个上班的动作就是你必须在被通知录用后才能同步执行去公司上班的动作。
3、Promise语法
1.promise对象
new Promise(function(resolve, reject){
....
})
构造函数里面的参数是一个 function ,在哪个function里面有两个函数,作用分别是接受(resolve)和拒绝(reject).由上面的代码知道,最终new出来的是一个Promise对象,它可以调用than(…),里面的参数分别是succeed,error,类型都为function,当操作成功之后,在then里面调用succeed方法。
粗糙的代码贴上,(在CSDN上,按F12,打开控制台,此代码贴上可做测试)
var demo = function(){ var prom = new Promise(function (resolve,reject) { xhr = new XMLHttpRequest(); xhr.onloadend = function () { alert(this.readyState); reject(this.responseText); //resoleve(this.responseText); } xhr.open("get","http://blog.csdn.net/pk/commentlist.html?id=45&page=1",true); xhr.setRequestHeader('Cache-Control',"no-cache"); xhr.send(); }); return prom; } var cuccess = function (data) { alert("成功" + data); } var error = function (error) { alert("失败" + error); }
promise.then()调用之后,返回的是一个Promise,所以可以实现链式调用,在ES6规范中新增方法all,
用法如下:
Promise.all(Iterator)
var p1 = new Promise(function(resolve,rejecte){
resolve(“成功” + “Holle world”);
})
var p2 = new Promise(function(resolve,rejecte){ rejecte("失败" + "Holle world");})Promise.all([p1,p2]).then(function(data){console.log(data);},function(error){console.log(error);}
);
这里的Iterator为数组,数组元素为promise对象,代码执行结果如下:
之前说到的,Promise解决 的是前端js的异步问题,那么在这里我科普一下,js有个同步的问题,使用过项目配置工具比如SVN或githup的人都知道同步代码,要求就是两端代码要一致,然而js的同步则是指一个方法执行完成之后我才接着执行,js的异步是指在做一件事的同时我还要花空余时间去做其他事情,js异步的例子上面有,举个js同步例子:交学费和上学两件事,没有交学费那么是没办法读书的。
学习参考:Promise学习资料一
Promise学习资料二
- Promise学习笔记(一)
- Promise学习记录(一)
- Promise胡思乱想(一)
- es6 标准 Promise 学习笔记
- Promise/commonJS/AMD学习笔记
- es6学习笔记之Promise
- ES6 Promise对象学习笔记
- 学习笔记:ES6之Promise
- ES6学习笔记(七)--Generator函数与Promise对象
- 2016.06.19廖雪峰JS__学习笔记(Promise)__P14
- JavaScript Promise 实现(一)
- js之promise(一)
- 大白话讲解Promise(一)
- 大白话讲解Promise(一)
- 大白话讲解Promise(一)
- 大白话讲解Promise(一)
- 大白话讲解Promise(一)
- 大白话讲解Promise(一)
- C语言线程休眠问题
- OpenCV(二) 图像编程入门
- opencv双目标定常见问题总结
- 欢迎使用CSDN-markdown编辑器
- java 启动线程三种方式
- Promise学习笔记(一)
- [深度学习论文笔记][CVPR 17]RefineNet: Multi-Path Refinement Networks for High-Resolution Semantic
- Python与MATLAB:随机打乱一个数字序列
- SDOI2017 Round2 退役记
- Kill Process
- [PAT-乙级]1035.插入与归并
- swift——复合类型——函数——函数类型
- 数据挖掘十大算法
- C++ 函数