首页 > 解决方案 > 试图获取函数的结果以填充类 Javascript 的参数

问题描述

我有一个调用类的 javascript 文件。我想获取该javascript文件中函数的结果并将其作为该类的参数传递。我想获取“convertGeoLocation”函数的结果并将值传递给“Weather”对象。

    // Init weather object
    const weather = new Weather();
    const ui = new UI();
    const convertTypedLocation = new Convert('Redding', 'CA');


    // Get weaterh on DOM load
    document.addEventListener('DOMContentLoaded', getWeather);
    // Get geolocation on load
    document.addEventListener('DOMContentLoaded', convertGeoLocation);

    function getWeather() {
    weather.getWeather()
        .then(results => {

            // ui.paint(results);
            console.log(results);
        })
        .catch(err => console.log(err))
    }

    // function getGeoLocation() {
    //     getLocation.getGeo()
    //     .then(geoResults => {
    //         ui.getLocation(geoResults);
    //         // console.log(geoResults);
    //     })
    //     .catch(err => console.log(err));
    // }

    function convertGeoLocation() {
        convertTypedLocation.convertLocation()
        .then(convertResults => {
           latitude = convertResults.results[0].geometry.lat;
           console.log(latitude);
        })
        .catch(err => console.log(err));
    }

标签: javascript

解决方案


function convertGeoLocation() {
    convertTypedLocation.convertLocation()
    .then(convertResults => {
       weather.results = convertResults;
       latitude = convertResults.results[0].geometry.lat;
       console.log(latitude);
    })
    .catch(err => console.log(err));
}

请记住,这不是正确的做法。通常最好在天气对象中创建一个新方法,如下所示:

addResults(results) {
    this.results = results
}

然后通过此方法添加它:

function convertGeoLocation() {
    convertTypedLocation.convertLocation()
    .then(convertResults => {
       weather.addResults(convertResults);
       latitude = convertResults.results[0].geometry.lat;
       console.log(latitude);
    })
    .catch(err => console.log(err));
}

推荐阅读