1

Meteor メソッドを使用して 1 つの API から json データを取得しようとしています。Meteor wrapAsync と Node Future を使用しようとしました。以下は私のコードです:

テンプレート ヘルパー - クライアント側

    getLocationTimebyAPI: function (company_location) {

    Meteor.call('getLocationTimebyAPIServerMethod', company_location, function(error, results){
    if(error){
        console.log('error',error.reason);
    } else {

        var localtime = results.data.data.time_zone[0].localtime
        var utcoffset = results.data.data.time_zone[0].utcOffset
        console.log(localtime+ ' '+utcoffset);

        var returntext = localtime+' (UTC '+utcoffset+')';
        return returntext;

     }
    });

    }

方法 1: Meteor wrapAsync の使用 - サーバー側

'getLocationTimebyAPIServerMethod': function(company_location){

   var apiurl = 'http://api.worldweatheronline.com/free/v2/tz.ashx?q='+company_location+'&format=json&key=XXXXXX';

    var convertAsyncToSync  = Meteor.wrapAsync( HTTP.get ),
    resultOfAsyncToSync = convertAsyncToSync( apiurl );

    return resultOfAsyncToSync;


}

方法 2: Node Fibre Future の使用 - サーバー側

'getLocationTimebyAPIServerMethod': function(company_location){

    // use the node fibers npm
    var Future = Npm.require('fibers/future');

   var apiurl = 'http://api.worldweatheronline.com/free/v2/tz.ashx?q='+company_location+'&format=json&key=XXXXXXXX';

    // Create our future instance.
    var future = new Future();

    HTTP.get( apiurl, {}, function( error, response ) {
      if ( error ) {
    future.return( error );
      } else {
    future.return( response );
      }
    });

    return future.wait();


}

両方の方法で、コンソールに出力された値を取得していますが、返されません。

以下はスクリーンショットです:コンソール ログ

どこが間違っているのかわからないので、誰か教えてください。

編集:テンプレートコードを追加:

    <tr>
        <td>Local Time:</td>

        <td><input id="company_location_time" name="company_location_time" type="text" size="23" placeholder="Lead Company Location Time" value="{{getLocationTimebyAPI company_location}}" readonly style="background:#7FAAFF;font-weight:bold;"><p style="font-size:8px;">Local Time Powered By <a style="font-size:8px;" href="http://www.worldweatheronline.com/search-weather.aspx?q={{company_location}}"  target="_blank">World Weather Online</a></p></td>
    </tr>
4

2 に答える 2