koa中同步与异步的写法
koa中间件洋葱圈模型,同步的写法
//node server.js
//中间件机制
const Koa = require('koa')
const app = new Koa()
// app.use(async(ctx,next)=>{
// ctx.body = 'hello imooc'
// })
// 运行结果
// 135642
app.use(async(ctx,next)=>{
ctx.body = '1'
//下一个中间件
next()
ctx.body = ctx.body + '2'
})
app.use(async(ctx,next)=>{
ctx.body+= '3'
//下一个中间件
next()
ctx.body = ctx.body + '4'
})
app.use(async(ctx,next)=>{
ctx.body += '5'
//下一个中间件
next()
ctx.body = ctx.body + '6'
})
//启动应用
app.listen('9002')
koa中间件洋葱圈模型,异步的写法
//135642
const Koa = require('koa')
const app = new Koa()
// app.use(async(ctx,next)=>{
// ctx.body = 'hello imooc'
// })
// 运行结果
// 135642
function delay(){
return new Promise((resolve,reject)=>{
setTimeout(()=>{
resolve()
},1000)
})
}
app.use(async(ctx,next)=>{
ctx.body = '1'
//下一个中间件
// setTimeout(()=>{
// next()
// },2000)
await next()
ctx.body = ctx.body + '2'
})
app.use(async(ctx,next)=>{
ctx.body+= '3'
//下一个中间件
await next()
ctx.body = ctx.body + '4'
})
app.use(async(ctx,next)=>{
ctx.body += '5'
await delay()
//下一个中间件
await next()
ctx.body = ctx.body + '6'
})
//启动应用
app.listen('3000')
koa中同步与异步的写法的更多相关文章
- JS中同步与异步的理解
你应该知道,javascript语言是一门“单线程”的语言,不像java语言,类继承Thread再来个thread.start就可以开辟一个线程,所以,javascript就像一条流水线,仅仅是一条流 ...
- AJAX中同步和异步的区别和使用场景
一.简介Ajax请求最重要的问题是代码执行的顺序.最长遇到的问题是,我们定义一个变量接收ajax异步请求的返回结果,后续代码使用,然而后续代码在使用时该变量为初始值,始终得不到想要的结果!!!二.示例 ...
- setTimeout、同步、异步的理解
console.log('111'); setTimeout(()=>{ console.log('222') },1000); console.log('333'); setTimeout(( ...
- js中对同步和异步的理解
你应该知道,javascript语言是一门“单线程”的语言,不像java语言,类继承Thread再来个thread.start就可以开辟一个线程,所以,javascript就像一条流水线,仅仅是一条流 ...
- js中的同步和异步的个人理解(转)
你应该知道,javascript语言是一门“单线程”的语言,不像java语言,类继承Thread再来个thread.start就可以开辟一个线程,所以,javascript就像一条流水线,仅仅是一条流 ...
- ASP.NET sync over async(异步中同步,什么鬼?)
async/await 是我们在 ASP.NET 应用程序中,写异步代码最常用的两个关键字,使用它俩,我们不需要考虑太多背后的东西,比如异步的原理等等,如果你的 ASP.NET 应用程序是异步到底的, ...
- 尝试解决在构造函数中同步调用Dns.GetHostAddressesAsync()引起的线程死锁
(最终采用的是方法4) 问题详情见:.NET Core中遇到奇怪的线程死锁问题:内存与线程数不停地增长 看看在 Linux 与 Windows 上发生线程死锁的后果. Linux: Microsoft ...
- python学习道路(day11note)(协程,同步与异步的性能区别,url爬网页,select,RabbitMq)
1.协程 #协程 又称微线程 是一种用户的轻量级线程 程序级别代码控制 就不用加机器 #不同函数 = 不同任务 A函数切到B函数没有进行cpu级别的切换,而是程序级别的切换就是协程 yelied #单 ...
- Ajax 是什么?Ajax 的交互模型?同步和异步的区别?如何解决跨域问题?以及 HTTP状态码
一.Ajax 是什么: 1. 通过异步模式,提升了用户体验 2. 优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占用 3. Ajax 在客户端运行,承担了一部分本来由服务器承担的工作 ...
随机推荐
- Docker的镜像 导出导入
查看当前已经安装的镜像 vagrant@vagrant:~$ sudo docker images REPOSITORY TAG IMAGE ID CREATED SIZE mysql 5.7.22 ...
- colormap 参数及对应色卡
[参考] [1]matlab帮助文档
- for循环总结
1.冒泡排序的总结:其实这个很简单的理解,就是用数组里面的第0个元素(也就是[]里面的第一个数,按照数组的话是第一个,让他们进行挨个比较),示例: 排序前: 14 62 38 41 53 62 71 ...
- js 实现 map 工具类
/* * MAP对象,实现MAP功能 * * 接口: * size() 获取MAP元素个数 * isEmpty() 判断MAP是否为空 * clear() 删除MAP所有元素 * put(key, v ...
- Heartbeat基本介绍----HA / vmware HA FT
Heartbeat是High-Availability Linux Project (Linux下的高可用性项目)的产物,是一套提供防止业务主机因不可避免的意外性或计划性宕机问题的高可用性软件.Hea ...
- System.Collections.IDictionary.cs
ylbtech-System.Collections.IDictionary.cs 1.程序集 mscorlib, Version=4.0.0.0, Culture=neutral, PublicKe ...
- STM32 STM32F4 寄存器怎么配置不上, 无法往寄存器写入数据
当出现这个问题时,往往是因为你没有在RCC寄存器中把相关的时钟使能打开. 配置寄存器之前记得调用"RCC_AxxxPeriphClockCmd"先打开需要配置的时钟源,别调用了“R ...
- multiprocessing多进程(31-04)创建进程的两种方式
一个进程可以寄生多个线程. CPU核数与进程个数是统一的, 若进程多于核数,那么只有等待上一进程执行完才能被执行. ------------------第一种进程创建方式--------------- ...
- 6_5.springboot2.x数据整合springData JPA
1.配置文件 pom.xml <dependencies> <dependency> <groupId>org.springframework.boot</g ...
- css3 ---1 基本的选择器
基本的选择器 <style type="text/css"> /*通配符选择器*/ * { margin: ; padding: ; border: none; } / ...