ECMAScript 6.0基础入门教程(二)
8、Promise
Promise——承诺
8.1 异步
- 操作之间没有关系
- 同时进行多个操作
- 回调写法代码复杂(回调地狱)
下面是异步操作代码,如果想要同时读取不同模块的数据,就要写成回调方式。
ajax('/top', function (top_data){
//top读取成功
ajax('/left', function (left_data){
//left读取成功
ajax('/right', function (right_data){
//right读取成功
ajax('/bottom', function (bottom_data){
//bottom读取成功
},function (){
console.log('bottom读取失败');
})
},function (){
console.log('right读取失败');
})
},function (){
console.log('left读取失败');
})
},function (){
console.log('top读取失败');
})
8.2 同步
- 同时只能做一件事
- 代码排队执行
- 代码简单,方便维护
下面是同步代码,不同模块分别调用,代码简洁:
let top_data = ajax_async('/top');
let left_data = ajax_async('/left');
let right_data = ajax_async('/right');
let bottom_data = ajax_async('/bottom');
8.3 Promise使用用法
- Promise可以消除异步操作,用同步的方式来书写异步代码