JavaScript函数未返回变量

问题描述

我有以下用于调用API的函数

var unirest = require("unirest");

const fetchUpcomingBySport = async(id) => {
    var req = unirest("GET","https://bet365-sports-odds.p.rapidapi.com/v1/bet365/upcoming");

    req.query({
        "sport_id": id
    });
    
    req.headers({
        "x-rapidapi-host": "bet365-sports-odds.p.rapidapi.com","x-rapidapi-key": "API-KEY","useQueryString": true
    });
    
    
    req.end(function (res) {
        if (res.error) throw new Error(res.error);
        return(res.body.results);
    });
}

module.exports = fetchUpcomingBySport;

API调用成功。我可以记录'res.body.results'的值,但是我的调用let fixtures = await fetchUpcomingBySport(12)返回的值是不确定的。我相信我必须像这样从res.end回调之外返回:

var unirest = require("unirest");

const fetchUpcomingBySport = async(id) => {
    var req = unirest("GET","https://bet365-sports-odds.p.rapidapi.com/v1/bet365/upcoming");
    let results;
    
    req.query({
        "sport_id": id
    });
    
    req.headers({
        "x-rapidapi-host": "bet365-sports-odds.p.rapidapi.com","x-rapidapi-key": "API KEY","useQueryString": true
    });
    
    
    req.end(function (res) {
        if (res.error) throw new Error(res.error);
        results = res.body.results;
        return;
    });
    
    return results;
}

module.exports = fetchUpcomingBySport;

但是,当我在fetchUpcomingBySport的开头创建变量'results'时,但是当我将变量设置为'res.body.results'时,它仍返回未定义状态。

有什么想法吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...