基于Promise对象的Async/Await可以与Ajax .done方法不兼容。为避免返回undefined的情况,可以改用Promise的.then方法来获取Ajax返回的结果。示例如下:
function getData() {
return new Promise(function(resolve, reject) {
$.ajax({
url: 'https://jsonplaceholder.typicode.com/posts/1',
method: 'GET'
}).done(function(data) {
resolve(data);
}).fail(function(error) {
reject(error);
});
});
}
async function main() {
try {
const data = await getData();
console.log(data);
} catch (error) {
console.error(error);
}
}
main();