可以考虑使用Promise解决这个问题。代码示例:
function apiCall() {
return new Promise((resolve, reject) => {
fetch('http://example.com/api')
.then(response => response.json())
.then(data => {
resolve(data);
})
.catch(error => {
reject(error);
});
});
}
// 调用API
apiCall().then(data => {
// TODO:处理返回的数据
}).catch(error => {
console.error(error);
});
这里使用了Promise来封装API调用,并且在调用时处理了返回的数据。由于Promise会等待fetch请求完毕后再返回数据,所以第一次返回undefined的问题得以解决。