У меня есть следующий код. Цены на массивы, похоже, не попадают в массив prices
, несмотря на успешное получение ustock.unitprice
.Локальный массив не помещается в
getLatestMarketPrices: function(username, callback) {
var prices = [];
db.find('portfolio', {user: username}, function(err, stocks) {
for(var i = 0; i < stocks.length; i++) {
module.exports.getQuote(stocks[i].stock, function(err, ustock) {
console.log(ustock.unitprice); // Retrieves 1.092
prices.push(ustock.unitprice); // Should push to prices array?
});
}
console.log(prices); // Prices is still [] despite earlier push.
callback(null, prices);
});
},
Это обзорный вопрос? Я не совсем уверен, почему prices
не нажал.
Большое спасибо.
ли db.find вызов асинхронной? – DaveParsons
Да. Он имеет обратный вызов ('функция (err, запасы)'). Вы думаете, что мне нужно переадресовать внешний массив на каждой итерации? Благодарю. –
Это потому, что 'console.log' вызывается до завершения' getQuote() '. – Andy