此脚本调用一个函数以获取股票信息并将其返回到变量中。接下来,我将对变量进行处理。因为变量不等到函数返回,所以变量始终是未定义的。我将如何使用promise来解决这个问题?另外,yahoo-finance库运行良好,因此这似乎不是问题。
我尝试使用Promises,但是我认为我对它们的设置不正确。
var yahooFinance = require("yahoo-finance");
function stock_info(symbol) {
var info = {};
yahooFinance.quote({
symbol: symbol,
modules: ['price']
}, function(err, quote) {
info = {
"Name": quote['price']['shortName'],
"Symbol": quote['price']['symbol'],
"Price": quote['price']['regularMarketPrice']
};
return info;
});
}
function create_stock(symbol) {
// problematic scenario
var information = stock_info(symbol);
console.log(information["Name"]);
}
create_stock("T");
create_stock("V");
我希望输出为股票“ AT&T”的名称,但实际输出未定义