var app = require('express')();
app.post('/getsomething', function(req, resp){
//操作A:根据req去另一个地方请求数据(异步)
//此时无法立即回复这个请求
});
想要在操作A有结果的时候拿到当时的resp,可以回复这个请求resp.send('result')
可以实现吗?
尝试按req的某个字段将resp存到redis中,当操作A有结果时取出来回复
但是存redis时JSON.stringify(resp)失败, Converting circular structure to JSON
求大神指教
你问的问题不成立
在建立连接之后,代码段是同步的,浏览器这个时候会等待返回,Http协议只能一次返回数据,此时做异步操作没有意义。当执行到resp.send之后,客户端会收到数据并关闭这个链接。
我有点明白你的意思,你想的是client请求后,先给个回复,然后过一会儿有了操作之后,再给个回复
那就是socket.io啊,想什么时候发数据就什么时候发