简述什么是Promise及其作用,本质
2018-02-23 23:28
351 查看
什么是Promise
所谓 Promise,就是一个对象,用来传递异步操作的消息。它代表了某个未来才会知道结果的事件(通常是一个异步操作),并且这个事件提供统一的 API,可供进一步处理。Promise的作用
Promise的出现主要是解决地狱回调的问题,比如你需要结果需要请求很多个接口,这些接口的参数需要另外那个的接口返回的数据作为依赖,这样就需要我们一层嵌套一层,但是有了Promise 我们就无需嵌套Promise的本质
我认为Promise的本质就是分离了异步数据获取和业务逻辑基本的 api
Promise.resolve()Promise.reject()
Promise.prototype.then()
Promise.prototype.catch()
Promise.all() // 所有的完成
Promise.all([p1,p2,p3])
基础案例
Promise 构造函数接受一个函数作为参数,该函数的两个参数分别是 resolve 方法和 reject 方法。var promise = new Promise(function(resolve, reject) {if (/* 异步操作成功 */){
resolve(value);
} else {
reject(error);
}
});
promise.then(function(value) {
// success
}, function(value) {
// failure
});
ajax的传统写法getData(method, url, successFun, failFun){
var xmlHttp = new XMLHttpRequest();
xmlHttp.open(method, url);
xmlHttp.send();
xmlHttp.onload = function () {
if (this.status == 200 ) {
successFun(this.response);
} else {
failFun(this.statusText);
}
};
xmlHttp.onerror = function () {
failFun(this.statusText);
};
}改为 Promise写法getData(method, url){
return new Promise(function(resolve, reject){
var xmlHttp = new XMLHttpRequest();
xmlHttp.open(method, url);
xmlHttp.send();
xmlHttp.onload = function () {
if (this.status == 200 ) {
resolve(this.response);
} else {
reject(this.statusText);
}
};
xmlHttp.onerror = function () {
reject(this.statusText);
};
})
}
getData('get','www.xxx.com').then(successFun, failFun)
相关文章推荐
- java中什么是构造方法及其作用
- 简述C语言中宏的作用及其副作用
- 简述MVC模式中M、V、C分别指代什么及发挥的作用
- 什么是网页中的logo及其作用、制作工具
- BIOS详解:什么是BIOS ?BIOS的作用?CMOS及其与BIOS的关系?
- 软件开发: hard code是什么及其作用
- base标签是什么及其作用介绍
- linux网络tcp报文中控制字段都有什么,简述大概作用
- 什么是三极管的倒置状态及其作用!
- [面试题]什么是事务,及其作用
- java中什么是构造方法及其作用
- arp是什么协议,简述其在tcp/ip协议栈中的主要作用
- 什么是设备控制块,它主要包括什么内容,简述其作用?
- linux中 su - 的含义,及其作用是什么?
- Html+Css+base标签是什么及其作用介绍
- 什么是隔离变送器?及其有什么作用?
- Android中Local Service最本质的作用是什么?
- xml约束模式的作用。简述什么是格式良好但无效的xml文档,什么是有效的
- 老男孩教育每日一题-2017年3月17日: linux网络tcp报文中控制字段都有什么,简述大概作用
- 简述static关键字的作用?(备注:在什么条件下使用static修饰局部变量、全局变量、函数)