看例子就行了,废话不多说!
 
async function checkStatus(name){
  return new Promise((resolve,reject) => {
      var that = this;
      this.timer = setTimeout(()=>{
        // clearTimeout(that.timer); -- todo 这里取消注释会有问题,难道timer冲突了?
        if(name === "success") resolve(true);
        else reject(false);
      },500);
  });
}
 
async function doSth(){
 
  /*
    正常使用的时候 :
      可以用then来接收resolve的结果;
      使用catch接受reject的结果
  */
 
  console.log('===== 使用Promise.then 接收resolve返回的结果 =====');
  var ret_s = checkStatus('success');
  ret_s.then(res => console.log('use Promise.then() , return :' ,res) );
 
  console.log('===== 使用Promise.catch 接收reject返回的结果 =====');
  var ret_err = checkStatus('ss');
  ret_err.catch(res => console.log('use Promise.catch() , return :',res));
  
 
  console.log('\r\n');
 
  /*
    使用await 的时候:
      不需要使用then来接收resolve的结果,直接就得到了结果
      对于reject的结果,采取静默处理. 只能通过try-catch来捕获
    和Promise的另外一个不同是,下面这两个调用是串行的,而不是像上面两个例子是并行的.
  */
 
  console.log('===== 使用Promise.then 接收resolve返回的结果 =====');
  var res_s = await checkStatus('success');
  console.log("await success result :",res_s);
 
  console.log('===== 使用await 接收reject返回的结果 =====');
  try{
    await checkStatus('fail');
  }catch(res_err){
    console.log('await handle the reject result :',res_err);
  }
  
}
 
doSth(); 

Promise 与 await 组合使用的更多相关文章

  1. promise async await使用

    1.Promise (名字含义:promise为承诺,表示其他手段无法改变) Promise 对象代表一个异步操作,其不受外界影响,有三种状态: Pending(进行中.未完成的) Resolved( ...

  2. 异步解决方案----Promise与Await

    前言 异步编程模式在前端开发过程中,显得越来越重要.从最开始的XHR到封装后的Ajax都在试图解决异步编程过程中的问题.随着ES6新标准的到来,处理异步数据流又有了新的方案.我们都知道,在传统的aja ...

  3. vue使用技巧:Promise + async + await 解决组件间串行编程问题

    业务场景描述 大家都通过互联网投递过简历,比如在智联.58.猎聘等平台.投递心仪的职位前一般都需要前提创建一份简历,简历编辑界面常规的布局最上面是用户的个人基本信息,如姓名.性别.年龄.名族等,接着是 ...

  4. angular2 学习笔记 ( Rxjs, Promise, Async/Await 的区别 )

    Promise 是 ES 6 Async/Await 是 ES 7 Rxjs 是一个 js 库 在使用 angular 时,你会经常看见这 3 个东西. 它们都和异步编程有关,有些情况下你会觉得用它们 ...

  5. Promise,async/await解决回调地狱

    先说一下async的用法,它作为一个关键字放到函数前面,用于表示函数是一个异步函数,因为async就是异步的意思, 异步函数也就意味着该函数的执行不会阻塞后面代码的执行. 写一个async 函数 as ...

  6. Promise在await报错后,如何继续往下跑...

    一.resolve 当a>0时,正常情况依次输出A.B.C console.log("A"); let result = await this.test(); console ...

  7. ES6 class setTimeout promise async/await 测试Demo

    class Person { async getVersion () { return new Promise((resolve, reject) => { setTimeout(functio ...

  8. promise,await,async小论

    Promise: Promise为了解决异步回调地狱而生的,其解决方法就是链式调用promise.then()或promise.all(); Promise有两个参数,resolve和reject,第 ...

  9. Promise,Generator,Await/Async

    上节中忘记讲:Iterator接口和Generator函数的关系了,Symbol.iterator方法的最简单的实现就是通过Generator函数: let myIterable = { [Symbo ...

随机推荐

  1. ajax 'Content-Type': 'multipart/form-data' ->文件上传

    'Content-Type': 'multipart/form-data' :指定传输数据为二进制数据,例如图片.mp3.文件

  2. 输入、输出(iostream)

    在一个程序当中输入和输出都扮演着重要的角色,所以掌握基本输入输出是入门一门语言所必不可少的.本文主要简单叙述java的输入和输出. package ios; import java.util.Scan ...

  3. Zero 初识Sciter

    在浏览有关Sciter技术前,您需要花点时间浏览以下内容. 您是否需要花时间学习Sciter? 如果您的工作或您想从事的工作与桌面应用开发无关,那么您不需要学习Sciter. 如果您不认同HTML\C ...

  4. Link Analysis_1_Basic Elements

    1. Edge Attributes 1.1 Methods of category 1.1.1 Basic three categories in terms of number of layers ...

  5. 【rabbitmq】Queueingconsumer被废止后老代码如何做的解决方案

    amqp-client 3.x之前的rabbitmq版本有个消费者的写法是借助于Queueingconsumer的: QueueingConsumer consumer = new QueueingC ...

  6. Nginx配置详解 http://www.cnblogs.com/knowledgesea/p/5175711.html

    Nginx配置详解 序言 Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的.从2004年发布至今,凭借开源的力量,已经接近成熟与完善. Nginx功能丰富,可作 ...

  7. Git如何修改一个过去的Commit

    假设我的git log 如下: commit 5511533dda6fee6982175fafca1f4bd5692e3d9c (HEAD -> trans, origin/trans) Aut ...

  8. CRM:异步加载下拉列表,三个列表出现同样的下拉框

    异步加载下拉列表,三个列表出现同样的下拉框,原因如下: Spring默认单例,如果Action是单例,那么上一次查询的结果就可能被下一次的查询所调用.所以必须配置action为多例, 如果采用单例模式 ...

  9. 在CentOS 7环境下安装 Spark

    1.下载Spark安装包:http://mirror.bit.edu.cn/apache/spark/ 2.解压Spark的安装包并更改名称: (1)tar -zxvf spark-2.4.3-bin ...

  10. PHP 的 SAPI 是个什么东西(转)

     SAPI,是 Server Application Programming Interface 的首字母缩写,意思是服务器端应用编程接口. 这是 PHP 内核提供给外部调用其服务的接口,即外部系统可 ...