【发布时间】:2021-06-09 05:34:26
【问题描述】:
我知道有很多关于此的问题和答案,但我是 JavaScript 新手,我正面临 async/await 函数的问题。我有两个函数:getInvoices() 我有一个 ajax 调用来获取所需的数据,loadBarChart(data) 呈现一个条形图。对于我使用的图表 ApexCharts。所以我首先调用getInvoices() 函数来获取数据,然后我调用loadBarChart(data) 传递数据,如下所示:
$(document).ready(function () {
var data = getInvoices();
console.log(data); // data is undefined
loadBarChart(data);
});
data 总是 undefined 可能是因为 ajax 调用没有完成。
这里是getInvoices()功能码:
function getInvoices() {
var url = "@Url.Action("GetInvoiceCustum");
$.ajax({
type: "GET",
dataType: "json",
url: url,
success: function (data) {
return data;
},
error: function (jqXHR, textStatus, errorThrown) {
alert(textStatus);
}
});
}
在this之后我改了代码,但最后我不知道如何将数据从getInvoices()传递到loadBarChart(data);
到目前为止,这就是我所拥有的:
$(document).ready(function () {
var url = "@Url.Action("GetInvoiceCustum");
var ajax1 = new Promise((resolve, reject) => {
$.ajax({
type: "GET",
url: url,
success: function (data) {
resolve("OK");
result = data;
},
error: function () {
reject(" ERROR");
},
});
});
//At this point how can I acces the result from ajax call, and call the loadBarChart(data)
ajax1.then(values => {
console.log(values)
}, reason => {
console.log("Errors: " + reason)
});
ajax1.then(function (data1) {
var data = data1.result;
console.log(a);
return data1.result;
//loadBarChart(data);
})
});
这样做我如何访问返回getInvoices() 的数据,然后调用loadBarChart(data),或者有其他方法可以做到这一点?
【问题讨论】:
标签: javascript ajax asp.net-ajax