promise的简单理解

构造函数

var thing = new Promise(function(){
  alert('hello');
});

上面的这个 function() 是会立刻被执行的。

resolve 和 reject

上面的函数中,可以接受两个参数,一个是 resolve 一个是 reject ,如下

var thing = new Promise(function(resolve, reject){
  resolve();// 当操作成功之后,我们会呼叫这个函数,这样 thing.then() 就会被执行
  reject();// 如果操作失败,我们呼叫这个函数,来触发 thing.catch()
});

尝试在chrome的Sources的Snippets(代码片段)中执行。chrome的代码片段可以随时随地的敲一段js代码,然后立即执行,以后不用在console中那么麻烦了。

image.png
var thing = new Promise(function(resolve, reject){
  console.log('Run!');
  setTimeout(function(){
    resolve()
  }, 3000);
});
thing.then(function(){
  console.log('thing.then()...');
});
thing.catch(function(){
  console.log('thing.catch()...');  
});

执行上面代码,可以看到,chrome 终端中会先打印出 Run! ,然后三秒后会打印出 thing.then ... 。如果把上面的 resolve() 改成 reject() , 那么得到执行的就是 thing.catch() 了。

此文章参考[好多视频的博客]:http://haoduoshipin.com/v/206/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文适用的读者 本文写给有一定Promise使用经验的人,如果你还没有使用过Promise,这篇文章可能不适合你,...
    HZ充电大喵阅读 7,351评论 6 19
  • 本文作者就是我,简书的microkof。如果您觉得本文对您的工作有意义,产生了不可估量的价值,那么请您不吝打赏我,...
    microkof阅读 15,982评论 9 40
  • Promiese 简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果,语法上说,Pr...
    雨飞飞雨阅读 3,395评论 0 19
  • Promise 的含义 一句话概括一下promise的作用:可以将异步操作以同步操作的流程表达出来,避免了层层嵌套...
    雪萌萌萌阅读 5,590评论 0 7
  • 编后吐槽:写的快花眼,很详细,耐心看必受益匪浅 JavaScript的执行环境是「单线程」的。所谓单线程,是指JS...
    果汁凉茶丶阅读 4,678评论 8 27