2017-05-10 8 views
0

私はまだjavascript、特にnodejsについて学んでいます。ノードジオコーダのresからcityのデータを取得したいと思います。ここに私のコードは次のとおりです。ノードジオコードからresデータを取得

const 
    nodeGeocoder = require('node-geocoder'); 

const 
    tes = require('./tes'); 

let 
    options = { 
     provider: 'google', 
     httpAdapter: 'https', 
     apiKey: myapi, 
     formatter: null 
    }; 

let geocoder = nodeGeocoder(options); 

geocoder.reverse({ 
    lat: tes.lat, 
    lon: tes.lon 
}) 
.then(res => { 
    return city = res[0].administrativeLevels.level1long; 
}) 
.catch(err => { 
    console.log(err); 
}) 

console.log(city); 
+0

あなたはコールバック/約束の外の都市にアクセスすることはできません、その中で物事を行う必要があります –

答えて

0

どちらかを使用するコールバック関数または.then内で物事を行う()

const 
    nodeGeocoder = require('node-geocoder'); 

const 
    tes = require('./tes'); 

let 
    options = { 
     provider: 'google', 
     httpAdapter: 'https', 
     apiKey: myapi, 
     formatter: null 
    }; 

let geocoder = nodeGeocoder(options); 

geocoder.reverse({ 
    lat: tes.lat, 
    lon: tes.lon 
}) 
.then(res => { 
    city = res[0].administrativeLevels.level1long; 

    //do here whatever you want 

}) 
.catch(err => { 
    console.log(err); 
}) 

または関数

上記のコールバック関数

function getCity(callback){ 

geocoder.reverse({ 
     lat: tes.lat, 
     lon: tes.lon 
    }) 
    .then(res => { 
     city = res[0].administrativeLevels.level1long; 
     callback(null, city); 

    }) 
    .catch(err => { 
     console.log(err); 
     callback(err); 
    }) 
} 

使用することを約束します

getCity(function(err, city){ 
    if(err){ 
    console.log(err); 

    }else{ 
    console.log(city); 
    } 

}) 
+0

あなたの答え、 のおかげで、私は別の関数で値を使用することができます –

+0

関数getCity(コールバック){}を使用して、上のように呼び出します –

関連する問題