繁体   English   中英

JavaScript object 值未定义

[英]JavaScript object value undefined

它将 object 传递给 function 但我不知道为什么,尽管它在那里可见,但我无法返回此 object 的各个元素,因为它在控制台日志中显示“未定义”。 任何人都知道我应该做什么或者我做错了什么?

代码:

    async function getMonitors(){
        try {
            let res = await fetch(API_URL+"/"+API_VERSION+"/status/monitors/"+location.hostname+"/list");
            var data = await res.json();
            if(data.success){
                delete data.success;
                return data;
            }else{
                e=data.message;
            }
        } catch(error){
            e=error;
        }
        if(typeof e!="undefined"&&e!==null){system.error(e);}
    }
    function getMonitorsData(data){
        let totalMonitors = data.totalMonitors;
        console.log(data);
    }
    var m = getMonitors();
    var data = getMonitorsData(m);

function Object中返回的object的屏幕

您在调用getMonitors() function 时错过了await关键字。

    async function getMonitors(){
    try {
        let res = await fetch(API_URL+"/"+API_VERSION+"/status/monitors/"+location.hostname+"/list");
        var data = await res.json();
        if(data.success){
            delete data.success;
            return data;
        }else{
            e=data.message;
        }
    } catch(error){
        e=error;
    }
    if(typeof e!="undefined"&&e!==null){system.error(e);}
}
function getMonitorsData(data){
    let totalMonitors = data.totalMonitors;
    console.log(data);
}
async function init() { 
    var m = await getMonitors(); 
    var data = getMonitorsData(m); 
}  
init();

您忘记调用 function 并传递来自您的 api 的响应数据
async function getMonitors(){ try { let res = await fetch("https://www.7timer.info/bin/astro.php?lon=113.2&lat=23.1&ac=0&unit=metric&output=json&tzshift var 数据 = 等待 res.json(); getMonitorsData(data) // 这是我添加的用于将响应传递给 function if(data.success){ delete data.success; 返回数据; }else{ e=data.message; } } 捕捉(错误){ e=错误; } if(typeof e.="undefined"&&e;==null){system.error(e);} } function getMonitorsData(data){ let totalMonitors = data.totalMonitors; 控制台;日志(数据); } var m = getMonitors(); var data = getMonitorsData(m);

尝试 console.log(data.totalMonitors) 看看你是否真的得到了正确的位置

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM