使用pebble.js处理函数外部的Json数据

时间:2015-08-16 21:59:22

标签: ajax json pebble-watch cloudpebble pebble-js

在函数 getweather()中,我从Json对象中获取一些天气数据,并将该数据存储在变量 data 中。在该函数中,我可以处理Json数据,但如何从 getweather()外部访问数据?

如果我返回变量位置数据,则无关紧要。变量地点不是Json。

如何处理 place 变量以使其在函数 getweather()中工作?

var ajax = require('ajax');

var place;
place = getweather();

function getweather()
{
    // Make the request
    ajax(
    {
      url: 'http://api.openweathermap.org/data/2.5/weather?q=paris.fr', type: 'json'
   },
    function(data) 
    {
    // Success!
    console.log("Successfully fetched weather data!");

    // Extract data
        var location = data.name;
        return location;    

    },
    function(error) {
    // Failure!
    console.log('Failed fetching weather data: ' + error);
    }
  );    
}

1 个答案:

答案 0 :(得分:1)

AJAX中的A代表异步。您的代码中发生的事情是您在api.openweather.org的异步调用返回之前尝试为 yo angular:directive myDirective yo angular:service myService yo angular:controller myController 分配值。

您可以在place之后直接放置console.log(place);之类的语句来检查此问题。在您看到place = getweather();

之前,您会在控制台中注意到None已退回

this post中详细介绍了此问题。它建议围绕回调重构代码。