Suis-je stupide ici? (Je viens de Ruby, il manque peut-être quelque chose à propos des tableaux Javascript).
console.log(new_devices)
Résultat en console: Array[1]
.
console.log(new_devices.length)
Résultat en console: 0
Le code produisant ceci:
var sp = require("serialport");
var new_devices = [];
sp.list(function(err, ports) {
ports.forEach(function(current) {
if (current.manufacturer == "Teensyduino") {
new_devices.push(current);
}
});
});
console.log(new_devices);
console.log(new_devices.length);
Réponses:
2 pour la réponse № 1Lorsque vous configurez des tableaux de journaux de console, la console crée une référence à ce tableau, elle ne vous montre pas un instantané de l'état du tableau au moment de l'exécution.
(Dans votre code, les éléments sont ajoutés à la liste en mode asynchrone. Ainsi, lorsque le journal de la console est en cours d'impression, la liste est vide.)
Considérons cet exemple: