异步函数:异步函数是异步编程语法的终极解决方案,它可以把异步代码写成同步的形式,让代码不再有回调函数嵌套,使代码变得更清晰。

const fn = async () =>{};

async  function  fn (){}.

1.async关键字
普通函数定义前加async关键字,普通函数变成异步函数;
异步函数默认返回promise对象;
在异步函数内使用return关键字进行结果返回,结果会被包裹在返回的promise对象中;
return代替resolve()方法,throw代替reject()方法;
调用异步函数再链式调用throw关键字抛出异常,catch方法捕捉异常;
调用异步函数再链式调用then方法获取异步函数执行结果。
async function f() {
    throw '发生错误';   //代替reject
    return '123';     //代替resolve
}
f().then((data)=>console.log(data)).catch((err)=>console.log(err))
 2.await关键字
await关键字只能出现在异步函数中;
await promise,await 后面只能写promise对象,不能写其他类型API;
await 关键字可以暂停异步函数向下执行,直到promise返回结果。
async function p1() {   return '1' };

async function p3() {     return '3' };

async function p2() {     return '2' } ;

const run = async ()=>{

let r1 = await p1();

let r2 = await p2();

let r3 = await p3();

console.log(r1);

console.log(r2);

console.log(r3) }

run();

3.asyncFunctionReadfile.js实例
const fs = require('fs'); //改造现有异步函数api 让其返回promise对象 从而支持异步函数语法

const promisify = require('util').promisify; //调用promisify方法改造现有异步api 让其返回promise对象

const readFile = promisify(fs.readFile);

const run = async ()=>{    l

et r3 = await readFile('./3.txt','utf8');

let r1 = await readFile('./1.txt','utf8');

let r2 = await readFile('./2.txt','utf8');

console.log(r3);

console.log(r1);

console.log(r2) }

run();

最新文章

  1. Cookie案例:简单登录界面中的应用
  2. SAP SE11 网格布局显示
  3. Quartz2D 画大白
  4. sharepoint项目遇到的WebDAV和HTTP PUT的安全隐患解决办法
  5. Failed to connect to JobMonApp on port 13491
  6. UI交互设计的网站
  7. 如何用jar命令对java工程进行打包
  8. fsdfasfsa
  9. PHP获取客户端操作系统,浏览器,语言,IP,IP归属地等
  10. 歪国人DIY的MINI四轴
  11. MVC中登录页图片验证码总结
  12. cURL的运用,文字替换
  13. jmeter-命令行执行脚本
  14. 《SpringMVC从入门到放肆》三、DispatcherServlet的url-pattern配置详解
  15. 比较Maven和Ant
  16. 纯css画直角三角形
  17. 使用HttpUtils完成Http Basic 认证
  18. [daily][tcpdump][bpf] 如何用tcpdump抓到一个分片包
  19. RFBnet论文笔记
  20. linq to sql 去重复

热门文章

  1. Docker-Bridge Network 01 容器间通信
  2. 利用Ajax实现异步请求
  3. Linux相关操作
  4. cucumber学习索引
  5. js拼接onclick方法字符串参数解决方法
  6. pytorch seq2seq闲聊机器人加入attention机制
  7. php中垃圾回收机制
  8. Flutter Weekly Issue 53
  9. 4.K均值算法应用
  10. 2019-2020-1 20199326《Linux内核原理与分析》第七周作业