没有真正的异步

1
2
3
4
5
6
7
8
9
10
router.get('/track', async (req, res) => {
track( ...req.query );
res.type('image/png').send('1');
});

function track(){
setTimeOut(()=>{
// do something
},2000)
}

由于nodejs的异步机制,setTimeOut挂载到任务队列里面,track算执行完成了,直接走到res.send这一步了
执行完成,这玩意直接算是释放掉了,导致track的setTimeOut里面的实际上未执行
正确的做法应该是

1
2
3
4
5
6
7
8
9
10
11
12
13
router.get('/track', async (req, res) => {
await track( ...req.query );
res.type('image/png').send('1');
});

function track(){
return new Promise((resolve)=>{
setTimeOut(()=>{
// do something
resolve()
},2000)
})
}

```

相关文章
评论
分享
  • serveless踩坑-注意事项

    事件触发,运行完直接释放,不支持长连接如websocket 在腾讯云标准环境下,仅 /tmp 目录可读可写,输出文件时请注意选择 /tmp 路径,否则会导致服务因缺少写权限而异常退出。 请求体如文件在base64后编码 不支持大...

    serveless踩坑-注意事项
  • 利用ffmpeg转码B站缓存

    由于工作原因驻场开发,地区限制,酒店竟没有wifi,所以开了流量套餐 其中就包括B站在线观看,缓存视频单独走流量计算,每个月有30G的流量, 虽然可以愉快的手机刷B站,但是明显PC看视频才更爽, 且开热点给PC看B站的流量是不算在...

    利用ffmpeg转码B站缓存
  • 服务器挂机下载百度网盘

    非业务需求,只是觉得开着电脑挂机下载百度网盘的内容实在是太慢了突发奇想,能不能用服务器挂机下载,反正开着也是开着上网搜索一番,还真的有现成的实现 有人利用百度网盘开源的api,写了个下载上传同步的工具(https://github.c...

    服务器挂机下载百度网盘
  • serveless踩坑-图片上传

    图片上传简单的图片上传前端1<input type="file" id="file"> 1234567891011121314function upload() { var formData = ne...

    serveless踩坑-图片上传
  • 离线上传方案

    有个需求需要断网环境下上传文件,在有网环境下提交附件需要提交到单独的文件服务器,返回文件服务器的id框架是element-ui 设计思路 利用浏览器自带的indexDB,存储blob数据 利用localStorage缓存表单数据,in...

    离线上传方案
  • react-native开发指南

    React Native 中设置 APP 名称、图标和启动页https://www.jianshu.com/p/727c6057fc0a 设置项目名android/app/src/main/res/values/strings.xml...

    react-native开发指南
  • 纯css添加div

    今天接到一个需求,在贴片图片的左下角添加一段文字,表明“广告”二字乍一听挺简单的,后来拿到源码发现不对劲 1234<script type='text/javascript' charset='utf-8' src='http:...

    纯css添加div
  • 82.删除排序链表中的重复元素II

    82. 删除排序链表中的重复元素 II给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。示例1输入: 1->2->3->3->4->4->5输出: 1->2...

    82.删除排序链表中的重复元素II
  • hexo使用手册

    My Name is NNNNzs 文章Front-matter是文件最上方以 — 分隔的区域,用于指定个别文件的变量,举例来说: 12345678---title: hexo使用手册date: 2019-08-10 00:25:19...

    hexo使用手册
  • 自动微信读书

    前言最近在学习ReactNative,真机调试的时候安装的ADB调试工具,突发奇想,既然PC可以操控手机,是不是可以做一些懒得做的事情 流程 通过USB链接真机调试 执行wifi调试 123adb tcpip 5555adb co...

    自动微信读书