Rohit Bhardwag
Rohit Bhardwag

Reputation: 23

Why resolve is undefined within callback of request?

When i run code given below in terminal than i get following error:- ReferenceError: resolve is not defined.

const request = require('request');

let geoLocationPromise = (zipCode) => {
return new Promise(()=>{
  request({
    url:`https://maps.google.com/maps/api/geocode/json?address=${zipCode}`,
    JSON: true
  }, (error, response, body)=>{
      if(error){
        reject('Unable to connect to server');
      }else if (response.statusCode === 200) {
        console.log(body);
        resolve(JSON.parse(body.currently, undefined, 2));
      }
  });
});
};

geoLocationPromise(841101).then((loc)=>{
  console.log(loc);
}, (errorMessage)=>{
  console.log(errorMessage);
});

Upvotes: 0

Views: 2162

Answers (1)

Patrick Hund
Patrick Hund

Reputation: 20236

You need to declare the parameters “reject” and “resolve” for your Promise's callback, like this:

const request = require('request');

let geoLocationPromise = (zipCode) => {
return new Promise((resolve, reject)=>{
  request({
    url:`https://maps.google.com/maps/api/geocode/json?address=${zipCode}`,
    JSON: true
  }, (error, response, body)=>{
      if(error){
        reject('Unable to connect to server');
      }else if (response.statusCode === 200) {
        console.log(body);
        resolve(JSON.parse(body.currently, undefined, 2));
      }
  });
});
};

Upvotes: 1

Related Questions