1.Promise简介
什么是promise
Promise是异步编程的一种解决方案,它的构造函数是同步执行的,then 方法是异步执行的。
为什么使用Promise
在JavaScript的世界中,所有代码都是单线程执行的。但是,很多网络操作,浏览器事件,都必须是异步执行,以保证软件的执行效率,毕竟如果用户发一个请求,网站在请求期间直接卡住,用户什么操作都做不了,是一个很糟糕的体验。异步f方法执行后的同步处理可以用回调函数实现,回调函数形式如下:
function callback() {
console.log('Done');
}
doSometing(){
.....
callBack()
}
但是这样存在一个问题,比如我们先要向服务器请求数据A,得到A后,再通过A向服务器请求B,得到B后还需要得到C,最后才能真正用C来处理我们的数据,这时候就会有三层回调!
getA(function(A) {
getB(A, function(B) {
getC(B, function(C) {
console.log('得到最终结果: ' + C);
}, failureCallback);
}, failureCallback);
}, failureCallback);
阅读上面代码,是不是很难受,上述形成了经典的 回调地狱。Promise就是用来处理这样的问题的。现在用promise来重写