【发布时间】:2021-01-06 08:57:24
【问题描述】:
有人可以解释为什么 loadData(symbol) 之后的回调函数没有被调用吗?我有这个功能:
function plotChart(symbol) {
alert("symbol: " + symbol);
var data = loadData(symbol, function(){
console.log("data: ",data);
});
}
我希望 log.console 在 loadData 完成后执行,但没有任何输出。
如果重要,这里是 loadData 函数。
function loadData(symbol) {
count = 0;
quotes = [];
$.getJSON("http://localhost:8080/springboot-crud-rest/api/v1/quotes-between?symbol=IBM&startDate=2020-01-01&endDate=2020-09-30", function(data) {
data.forEach(function(item){
var quote = {};
quote.date = item.id.date.substring(0,10);
quote.open = item.open;
quote.high = item.high;
quote.low = item.low;
quote.close = item.close;
quote.volume = item.volume;
quotes.push(quote); //put quote in array
});
console.log("quotes: ",quotes);
return quotes;
});
}
在这里,console.log 成功正确打印出引号。
编辑: 根据@Aluan,我将代码更改为如下所示:
function plotChart(symbol) {
loadData(symbol).then(function(data) {
console.log("data: ", data);
});
}
function loadData(symbol) {
quotes = [];
$.getJSON("http://localhost:8080/springboot-crud-rest/api/v1/quotes-between?symbol=" +symbol +"&startDate=2020-01-01&endDate=2020-09-30")
.then(function (data) {
const quotes = data.map(function(item) {
return {
date: item.id.date.substring(0,10),
open: item.open,
high: item.high,
low : item.low,
close: item.close,
volume: item.volume
};
});
console.log("quotes: ",quotes);
return quotes;
});
}
但现在我遇到了错误: 未捕获的类型错误:无法读取未定义的属性“then” 在 plotChart (moneymachine.html:120) 在 HTMLTableRowElement 处。
第 120 行是loadData(symbol).then(function(data) {
【问题讨论】:
标签: javascript jquery json