Ist forEach in einem Array async? Süßigkeiten ist eine Reihe von Süßigkeiten Objekte.Ist Array.forEach in Node.js asynchron?
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"});
});
in der Konsole bekomme ich
[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)
....
Ist das eine kürzliche Änderung? Es ist eine Weile her, seit ich getan habe node.js
Warum haben Sie Code nach einem 'return'? – Thilo
Wenn es async wäre, hätten Sie zuerst die Fehlermeldung "Print error message". Warum wäre es asynchron? Auch Thilo hat richtig darauf hingewiesen - was ist der Sinn von Code nach 'return' Anweisung? Das wird nie ausgeführt werden. – Mjh
Auch die "Rückkehr" in der inneren Funktion wird nur die innere Funktion verlassen, nicht die äußere. – Thilo