var output = "";
//Make article Record.
async.parallel([function (callback) {
Article.save(Article, function (err, member) {
//console.log("member : " + member);
if (err) {
console.log(err);
output = 1;
} else {
console.log("Create article record success");
output = 2;
}
callback();
});
}], function (err, result) {
console.log("log 1 : " + output);
res.send(output);
console.log("log 2 : " + output);
});
嗨,我在使用async lib时遇到了麻烦。
我可以
log 1:2
log 2:2来自最后2个console.log。
但res.send(output)
未被解雇。当我用res.send("2")
替换它时,它有效。
但是,res.send(output)
无效,我的Android应用生成SocketTimeoutException
,因为未发送回复。
问题是什么?帮助我。
答案 0 :(得分:0)
对于此任务,您不需要async.parallel
(并行执行函数,并在最后一次执行execiting call callback之后)。
Article.save(Article, function (err, member) {
//console.log("member : " + member);
if (err) {
console.log(err);
return res.send(err);
}
console.log("Create article record success");
res.send("Create article record success");
});
您也不需要全局变量output
。
答案 1 :(得分:0)
您的问题仅仅是因为您尝试发送一个号码,res.send
会将其作为状态代码(并且无效)。请尝试更改以下代码:
output = 1;
至output = "1";
,output = 2;
与output = "2";
相同。
请参阅有关res.send
的文档,并查看不支持的数字:
res.send([body])
body参数可以是Buffer对象,String,对象或Array。
显然async.parallel
在这种情况下完全无关紧要,但我只是假设你真的想要这个而不是做出设计决定。