promise解决什么问题
解决异步编程问题
没有promise怎么解决异步编程
都是搞一个回调函数,比如
//示例:使用了回调函数的异步处理
http.get('/v1/get', function(error, data) {
if (error) {
//错误时的处理
}
//成功时的处理
})
复制代码
promise 可以做了什么?
更加方便的链式调用
var promise = http.get('/v1/get');
promise.then(function(result) {
//成功时的处理
}).catch(function(error) {
//错误时的处理
})
复制代码
基本用法
promise 里面是一个异步操作,可以执行resolve,reject方法
new Promise(function(resolve, reject) {
//待处理的异步逻辑
//处理结束后,调用resolve或reject方法
})
复制代码
new promise里面可能出现的状态
- pending: 初始状态,位履行或拒绝
- fulfilled: 意味着操作成功完成
- rejected: 意味着操作失败
promise 的demo
var promise = new Promise(function(resolve, reject) {
if (/* 异步操作成功 */){
resolve(222);
} else {
reject(error);
}
});
promise.then(function(value) {
// 如果调用了resolve方法,执行此函数
console.log(value) //222
}, function(value) {
// 如果调用了reject方法,执行此函数
});
复制代码
总结
这里讲的基本用法,就是在异步操作之后,执行回调。之后写一篇深入理解下Promise。