0

我已经为 node.js尝试了基于生成器的 async lib co ( GitHub )

这是代码。我使用共同快递和共同等待。

如您所见,客户在得到响应之前等待 10 秒。我的问题是 - 如果我尝试对这个 url 运行多个请求,并且所有函数都会阻止下一次调用。

我如何可以并行运行对该 url 的多个调用?本地主机:8000/测试

var fs = require('fs');
var co = require('co');
var express = require('express');
var wrapper = require('co-express');
var app = wrapper(express());
var wait = require('co-wait');

app.get('/test', function* (req, res, next) {
    yield waitAndAnswer(res)
});

function* waitAndAnswer (res) {
  yield wait(10000);
  res.send('Done: ' + Date.now());
}

app.listen(8000);
4

1 回答 1

0

当我尝试通过单个浏览器调用此 url 时,我犯了一个错误。看起来像是浏览器的标准行为,所以这段代码按预期工作。Jonathan Ong 已经回答了我的问题。

如果您通过浏览器拨打电话,那么它是浏览器的事情。如果您通过 curl 或其他方式调用它,应该没问题。– 乔纳森·翁

于 2013-09-08T20:30:07.953 回答