从获取函数中获取值

时间:2017-04-12 09:42:46

标签: javascript fetch es6-promise

我正在尝试从获取函数中获取一个值,但是稍后我会尝试使用它。如何使我的所有进一步程序等到此值到达?

    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);

它给出了正确的结果,但我需要所有进一步的程序来等待这个值。

0 个答案:

没有答案