Ионная основная функция внутри класса не выполняется полностью - PullRequest
0 голосов
/ 12 марта 2019
  calculate_distance(lat1: number, lat2: number, long1: number, long2: number) {
    console.log("Inside getting calculate_distance");
    console.log(lat1);
    console.log(lat2);
    console.log(long1);
    console.log(long2);
    let p = 0.017453292519943295;    // Math.PI / 180
    let c = Math.cos;
    let a = 0.5 - c((lat1 - lat2) * p) / 2 + c(lat2 * p) * c((lat1) * p) * (1 - c(((long1 - long2) * p))) / 2;
    let dis = (12742 * Math.asin(Math.sqrt(a))); // 2 * R; R = 6371 km
    return dis.toFixed(2);
  }

вызывая эту функцию внутри другой функции, и я не получаю значение расстояния.

1 Ответ

0 голосов
/ 12 марта 2019

Я только что добавил тип возврата обещания в свою функцию.Так что он вернет мне значение.

calculateDistance(lat1: number, lat2: number, long1: number, long2: number):Promise<any> {
    console.log("Inside getting calculate_distance");
    console.log(lat1);
    console.log(lat2);
    console.log(long1);
    console.log(long2);
    let p = 0.017453292519943295;    // Math.PI / 180
    let c = Math.cos;
    let a = 0.5 - c((lat1 - lat2) * p) / 2 + c(lat2 * p) * c((lat1) * p) * (1 - c(((long1 - long2) * p))) / 2;
    let dis = (12742 * Math.asin(Math.sqrt(a))); // 2 * R; R = 6371 km
    return dis.toFixed(2);
  }

и назвал CalculateDistance вот так

  this.calculateDistance(this.my_lat, this.proj_lat, this.my_long, this.proj_long).then(result=>{
    this.distance = String(result)
  })
...