[英]Nodejs, async module function call
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);
});
嗨,我在異步lib上遇到了麻煩。
我可以得到
日志1:2
從最后2個console.log記錄2:2。
但是不會觸發res.send(output)
。 當我用res.send("2")
替換它時,它可以工作。
但是, res.send(output)
不起作用,並且我的Android應用程序生成SocketTimeoutException
因為未發送響應。
有什么問題? 幫我。
對於此任務,您不需要async.parallel
(並行執行函數,並且在最后一個執行調用回調后執行)。
請參閱異步文檔
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
。
你的問題很簡單,因為你試圖發送一個編號, res.send
將拿起作為一種身份的代碼(這是無效)。 嘗試更改以下代碼:
output = 1;
output = "1";
和相同的output = 2;
output = "2";
。
請參閱有關res.send
的文檔,並看到不支持該號碼:
res.send([body])
body參數可以是Buffer對象,String,對象或Array。
顯然,在這種情況下, async.parallel
完全無關緊要,但我只是假設您確實需要此方法,而不是將其作為設計決策。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.