我正在尝试从获取函数中获取一个值,但是稍后我会尝试使用它。如何使我的所有进一步程序等到此值到达?
let res = 'Invalid query';
function callback(result) {
res = result;
console.log('inside callback: ', res);
return res;
}
function getData(callback) {
return fetch('https://api.sunrise-sunset.org/json?lat=36.7201600&lng=-4.4203400')
.then(response => response.json())
.then(json => {
callback(json.results.sunrise);
})
.catch((error) => {
console.error(error);
});
}
getData(callback); // returns to console: inside callback: 5:46:40 AM -> which is what I need
console.log(res); // returns 'Invalid query', which is an initial value
如果我使用
setTimeout(function() { console.log(res); }, 2000);
它给出了正确的结果,但我需要所有进一步的程序来等待这个值。