koa代码编写上避免了多层的嵌套异步函数调用 async await来解决异步
- async await 需要依赖于promise

 三主角: __函数前面 async, 内部才能await,要想await能有用,就用promise包裹他__

  1._函数前面 async

app.use(async (ctx)=>{
if(ctx.url==='/') {
let data=await asyncReadFile();
ctx.body=data;
// 设置响应头
ctx.set('content-type','text/html;charset=utf-8'); //content-type: text/html;charset=utf-8
} else {
ctx.body='ok';
}
});

2.内部才能await

let  data=await  asyncReadFile();

3. 返回一个Promise 对象(包含两个参数)

function asyncReadFile() {
return new Promise(function(resolve,reject) {
fs.readFile('./index.html',(err,data)=>{
// 1:失败,err 2:成功需要data
if(err) {
reject(err);
return;
}
// 成功
resolve(data);
});
});
}

网整例子:

app.js

const  fs   = require('fs');
const koa = require('koa');
let app=new koa();
function asyncReadFile() {
return new Promise(function(resolve,reject) {
fs.readFile('./index.html',(err,data)=>{
// 1:失败,err 2:成功需要data
if(err) {
reject(err);
return;
}
// 成功
resolve(data);
});
});
} app.use(async (ctx)=>{
if(ctx.url==='/') {
let data=await asyncReadFile();
ctx.body=data;
// 设置响应头
ctx.set('content-type','text/html;charset=utf-8'); //content-type: text/html;charset=utf-8
} else {
ctx.body='ok';
}
}); app.listen();

html

<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<h1>hell world</h1>
</body>
</html>

效果:

最新文章

  1. xml 的读写
  2. python自省函数getattr的用法
  3. 【基础知识】.Net基础加强 第05天
  4. java操作spark1.2.0
  5. OC - 30.如何封装自定义布局
  6. 配置snort
  7. Java ArrayList小程序理解
  8. HeapAlloc,GlobalAlloc,LocalAlloc,VirtualAlloc,malloc,new的异同
  9. php一句话反弹bash shell
  10. 【SpringBoot笔记】SpringBoot如何正确关闭应用
  11. 如何让gitbook与github仓库关联
  12. php-------代码加密的几种方法
  13. .net core redis使用
  14. java沙盒入门(2)
  15. es与hive整合
  16. tpo-08 C1 submit a document for graduation
  17. centos 安装flash
  18. 使用带参数的SQL语句向数据库中插入空值
  19. d190305面试题01总结
  20. pat1035. Password (20)

热门文章

  1. springboot 2.x相关配置
  2. 【串线篇】概述SpringMvc和spring整合
  3. python3.x 匿名函数lambda_扩展sort
  4. CH340电路设计
  5. html 中 获取百度代码
  6. while循环语句基础
  7. 基于CentOS 7.3 安装Ceph Jewel 10.2.9
  8. 「NOI2017」游戏 解题报告
  9. 集训队8月2日(BFS)
  10. 【已转移】【Java架构:基础技术】一篇文章搞掂:Java 8