是forEach上的數組異步?糖果是一系列糖果對象。Node.js中的Array.forEach是異步的嗎?
app.get('/api/:id',function(req, res){
console.log("Get candy");
var id = req.params.id;
candies.forEach(function(candy, index){
if(candy.id == id){
console.log("Candy found. Before return");
return res.json(candy);
console.log("Candy found. After return");
}
});
console.log("Print error message");
return res.json({error: "Candy not found"});
});
在控制檯中我得到
[nodemon] starting `node app.js`
listning on port 3000
Get candy
Candy found. Before return
Print error message
Error: Can't set headers after they are sent.
at ServerResponse.setHeader (_http_outgoing.js:367:11)
....
這是最近的變化?已經過了一段時間了,因爲我已經完成了node.js
爲什麼你在'return'之後有代碼? – Thilo
如果它是異步的,你會首先記錄'打印錯誤信息'。爲什麼它是異步的?另外,Thilo正確指出 - 「return」語句後的代碼點是什麼?那永遠不會被執行。 – Mjh
此外,內部函數中的'return'只會退出內部函數,而不是外部函數。 – Thilo