0
私は非同期プログラミングの新人です、私は約束を理解できません。私は緯度/経度がGoogle Mapsに送信され、場所を詳述しているjsonが返される逆ジオコーディングライブラリを使用しようとしています。ノードjsメソッドで約束
class Geolocator
{
constructor()
{
let options = {
provider: 'google',
httpAdapter: 'https',
apiKey: mapsKey,
formatter: null
};
this._geocoder = NodeGeocoder(options);
}
getLocationId(lat, lon)
{
this._geocoder.reverse({lat: lat, lon: lon})
.then(function(res) {
return this._parse(null, res);
})
.catch(function(err) {
return this._parse(err, null);
});
}
_parse(err, res)
{
if (err || !res)
throw new Error(err);
return res;
}
私はundefined
を得るgeolocator.getLocationId
を呼び出します。私は、メソッド呼び出しが終了し、undefined
を返すと推測しています。約束をカプセル化する最良の方法は何ですか? @smarxが言ったように
'getLocationId'はundefinedを返しますが。あなたが行っている呼び出しの結果を返す場合は、その前に 'return'を置きます。 – smarx
@smarx私はそれを試みました、それはPromiseオブジェクトを返します。レスポンスではありません。 – mrQWERTY
これは応答を返すことができません...応答はまだ存在しません。プロミスで '.then'を呼び出し、レスポンスで呼び出される関数を渡す必要があります。 – smarx