NodeJS
事件处理
Event
代码示例:
// server.js
const http = require('http')
const https = require('https')
const url = require("url")
const {EventEmitter} = require('events')
let event = null
function httpGet() {
let data = ''
https.get(``,
(res) => {
res.on('data', (chunk) => {
data += chunk
})
res.on('end', () => {
console.log(data)
event.emit('play', data) // 触发play,并把data传过去
})
})
}
http.createServer((req, res) => {
const urlObj = url.parse(req.url, true)
res.writeHead(200, {
'Content-Type': 'application/json;charset=utf-8',
'access-control-allow-origin': '*'
})
switch (urlObj.pathname) {
case '/api/foo':
event = new EventEmitter() // 防止重复创建event对象(没有被销毁)
event.on('play', (data) => {
console.log(data)
res.end(data)
})
return httpGet()
default:
res.end('404')
}
}).listen(3000)