ES6 Promise

@Time 2018-5-17

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


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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Promise的含义:   Promise是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和...
    呼呼哥阅读 2,255评论 0 16
  • Promise 对象 Promise 的含义 Promise 是异步编程的一种解决方案,比传统的解决方案——回调函...
    neromous阅读 8,814评论 1 56
  • ES6 Promise 用法讲解 Promise是一个构造函数,自己身上有all、reject、resolve这几...
    这刻我懂了阅读 692评论 0 1
  • 本文适用的读者 本文写给有一定Promise使用经验的人,如果你还没有使用过Promise,这篇文章可能不适合你,...
    HZ充电大喵阅读 7,420评论 6 19
  • 如果浏览已经有了Promise对象,那么页就说明浏览器的js引擎里已经有了Promsise队列,这样就可以利用Pr...
    羊烊羴阅读 570评论 0 0

友情链接更多精彩内容