ES6 Promise

@Time 2018-5-17

1.回调函数:
首先我知道的传统异步编程中异步的解决方案只有回调:
比如这样: 这里的函数B是当做一个参数放在了主函数A中,当调用A传参B时,会先执行A函数体中的console.log,然后延时3秒后输出了“这里是回调函数”(报错不用在意,因为没打开编译器,在浏览器上随手写了一下)


ES6 Promise_第1张图片
image.png

再例如回调函数含参的时候:
主函数A中进行了加法计算,然后c值是在回调函数中alert出来的

//IIFE
(function(){
        function A(a,b,callback){
            c=a+b;
            callback(c);
        }
        function B(para){
          setTimeout(()=>{alert(c)},3000);
        }
        A(1,2,B);
}())

2.Promise
为了更好的解决"回调地狱"问题,通俗的说也就是回调一层一层嵌套。Promise最早产生于一个社区,最后被加入了ES6中。

首先ES6规定,Promise对象是一个构造函数,专门用来生成promise实例,Promise构造函数接收俩参数resolve,reject,代表成功和失败,执行结束后回将异步操作的结果作为参数传递出去resolve(value) ,reject(error).

举一个栗子:

function timeout(time){
  const promise = new Promise((resolve,reject)=>{
   setTimeout(resolve,time,'done')
});
   return  promise; 
}
   timeout(100).then((value)=>{
   console.log(value);
},(error)=>{});
//这个error可以省略   

这只是我的初步理解
具体想详细理解可以看大佬的 http://es6.ruanyifeng.com/#docs/promise

你可能感兴趣的:(ES6 Promise)