素材牛VIP会员
一段简单的 Generator 代码,但结果却不是预期的那样,求指点迷津
 香***刊  分类:Node.js  人气:556  回帖:2  发布于6年前 收藏

今天学用 koa.js 写个简单的 demo,代码如下:

import koa from 'koa'

let App = koa()

App.use(function *(next) {
  const timestampBefore = new Date().getTime()
  yield next
  const timestampAfter = new Date().getTime()
  console.log(`Process Time: ${timestampBefore - timestampAfter}`)
})

App.use(function *() {
  this.body = 'Hello from koa'
})

App.listen(4000)

export default App

很简单的一段代码,按照许多教程里描述的,应该是每请求一次就打印一条该请求的处理时间,但是我运行之后却总是一次打印两条请求的处理时间,这两个时间或者相同或者不同并没有规律,更奇怪的是还会出现负数……

这我就想不明白了,谁能给我解释一下里面的道理?谢谢~

讨论这个帖子(2)垃圾回帖将一律封号处理……

Lv5 码农
陈***康 学生 6年前#1

我猜你请求的时候用的是 Chrome 浏览器对吧?如果你打开浏览器的开发者工具观察一下 Network 里的请求,应该可以看到的确是两个请求(说不定更多),其中有一个是去请求 favicon.ico 文件的,这就是你看到一次打印两条请求的原因。

至于为什么是负的,如果我没猜错的话如果你重启 server 再试一次,最开始的请求应该不会是负数,至于后面嘛……反正也是乱猜的,不误导你了吧,反正也没啥大不了了。

Lv3 码奴
mo***id 站长 6年前#2
  1. 请求两次是因为请求了 favicon.ico

  2. 负数是因为你减反了吧。。。 timestampAfter - timestampBefore

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取