Advertisement
Guest User

Untitled

a guest
Oct 28th, 2016
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function calculateWaterfallDistance(currentPos, waterfalls) {
  2.   // loop through the waterfalls object and add a
  3.   var waterfallsArray = [];
  4.  
  5.  
  6.   waterfalls.waterfalls.forEach( function (waterfall)
  7.   {
  8. waterfallsArray.push(getDistance(currentPos, waterfall.location.geometry.location).then( (distObj) => {return waterfall.travelInfo = distObj;}));
  9.   });
  10.  
  11.   Promise.all(waterfallsArray).then(() => {
  12.     for (var i = 0; i < waterfalls.waterfalls.length; i++) {
  13.         waterfalls.waterfalls[i].travelInfo = waterfallsArray[0];
  14.     }
  15.   });
  16.  
  17.   return new Promise(function(resolve, reject) {
  18.     resolve(waterfalls);
  19. });
  20. }
  21.  
  22.  
  23.  
  24.  
  25. function getDistance(start,stop) {
  26.   var url = buildGoogleMapsUrl(start,stop);
  27.   return axios.get(url)
  28.     .then(function (data) {
  29.       return {distance: data.data.rows[0].elements[0].distance.text, duration: data.data.rows[0].elements[0].duration.text}
  30.     })
  31.  
  32. }
  33.  
  34.  
  35. // React part
  36.   makeRequest: function () {
  37.     const data = getWaterfalls()
  38.     getUserPosition()
  39.     .then(function(position) {
  40.         // we have the user's position!
  41.         getWaterfalls().then( (resData) => {
  42.             calculateWaterfallDistance(position.coords , resData).then( (promisedata) =>{
  43.               console.log(promisedata.waterfalls[0].travelInfo.);
  44.               this.setState({
  45.                 waterfallData: promisedata.waterfalls,
  46.                 isLoading: false,
  47.                 userPosition: position.coords
  48.               });
  49.             })
  50.  
  51.         })
  52.  
  53.  
  54.     }.bind(this))
  55.     .catch(function(error) {
  56.         // uhoh, something went wrong
  57.         console.log(error);
  58.     }.bind(this));
  59.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement