看例子就行了,废话不多说!
 
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. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 表单:表单控件大小

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  2. Linux 运维常用命令

    参考: https://segmentfault.com/a/1190000009745139 http://blog.51cto.com/xuqq999/774714 .查看有多少个IP访问: aw ...

  3. PHP 获取header 的自定义参数值

    $.ajax({ type: "GET", url: "default.aspx", beforeSend: function(request) { reque ...

  4. Deep Image Retrieval: Learning global representations for image search In ECCV, 2016学习笔记

    - 论文地址:https://arxiv.org/abs/1604.01325 contribution is twofold: (i) we leverage a ranking framework ...

  5. simplecheck

    环境:win10 工具:jadx .夜神模拟器.pycharm 下载好了之后加载到模拟器 输入正确的flag验证 加载到jadx.查看MainAtivity if语句进行验证是否正确,如果正确就输出y ...

  6. JS - 判断字符串某个下标的值

    <html><body> <script type="text/javascript"> var str="0123456789!&q ...

  7. python 输入年月日,返回当天是星期几

    引入内置模块calendar,输入年.月.日,根据weekday(year,month,day)的返回值,输出该日期是星期几.函数weekday()返回0-6分别对应星期一至星期日 import ca ...

  8. Koa微信公众号开发

    微信开发者模式开启需要服务器域名合法并且把接口配置好,这个接口是接通的关键,接通后微信后台的菜单设置功能,客服功能会失效,需要开发者自定义菜单和智能客服界面,并且接通后可以调用微信网页内部的定位分享等 ...

  9. 009.CI4框架CodeIgniter, 网页访问GET的URL参数获取,分段输出URL参数

    01.代码如下,我们给在PHP CI4框架中定义了一个show函数,并给了3个参数,代码如下: <?php namespace App\Controllers\System; use App\C ...

  10. http https 干货

    HTTPS原理  在谈HTTPS原理之前,首先了解一下Http和Https的区别.     Http(全称:Hyper Text Transfer Protocol),一般称为超文本传输协议,也是互联 ...