js 中async 中的return 值的问题。

发布于 2022-09-11 17:40:23 字数 930 浏览 29 评论 0

获取视频信息的URL 是通过API后台异步返回的。因此需要先通过getDashInfo 方法获取到url ,然后再创建axios对象,但是下边的REST_BASEURL 变量却是一个Promise 对象,看下代码哪里需要修改呢。

clipboard.png

function getDashInfo(){
    return new Promise((resolve,reject)=>{
        getDashServerInfo().then(res=>{
            console.log(res);
            let dash;
            let errCode=res.errCode;
            if(errCode==0){
                dash=res.data;
            }
            resolve(dash);
        })
    })
}
async function getBaseURL(){
    let dash=await getDashInfo();
    let url='';
    let dataPort='';
    if(dash.url.indexOf('https')!=-1){
        dataPort=dash.httpsCmdPort;
    }
    else{
        dataPort=dash.httpCmdPort;
    }
    url=dash.url+':'+dataPort;
    return url;
}
let REST_BASEURL=getBaseURL();
const newAxios=axios.create({
    baseURL:REST_BASEURL,
});

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

无法言说的痛 2022-09-18 17:40:23

async本来就是返回promise对象

陈年往事 2022-09-18 17:40:23

getDashInfo函数这样改写

function getDashInfo(){
    return getDashServerInfo().then(res=>{
            console.log(res);
            let dash;
            let errCode=res.errCode;
            if(errCode==0){
                dash=res.data;
            }
            return dash;
        });
}
国粹 2022-09-18 17:40:23
//这里有问题:
let REST_BASEURL=getBaseURL(); //async 返回的还是一个 promise
const newAxios=axios.create({
    baseURL:REST_BASEURL,
});
//改成:
getBaseURL.then(REST_BASEURL=>{
    const newAxios=axios.create({
        baseURL:REST_BASEURL,
    });
})
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文