es7 async await 报错

发布于 2022-09-06 15:13:47 字数 1309 浏览 31 评论 0

用 async await 报错 !

let getSid = function (){
    let result  = new Promise();
    let sid = sessionStorage.getItem('sid');
    if (!sid) {
        axios({
            method: "post",
            url: COMMON_URL + '/app/init',
        }).then(function(res) {
            sessionStorage.setItem('sid', res.data.sid);
            sid = res.data.sid;
            result.resolve(sid)
        });
    }else{
        result.resolve(sid)
    }
    return result;
}



export  async function axiosPost (url, data) {
    await getSid()

    data = qs.stringify(data)
    let result;
    
    let token = sessionStorage.getItem('token');
    let sid = sessionStorage.getItem('sid');
    if (token == null) {
        let isIngnore = location.pathname.indexOf(ingnoreRoute);
        if (isIngnore < 0) {
            location.href = '/account/login';
        }
    }
    result = axios({
        method: "post",
        data: data,
        url: COMMON_URL + url,
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded',
            'X-SID': sid,
            'X-TOKEN': token,
        },
    })

    return result;
}

clipboard.png

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

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

发布评论

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

评论(2

半山落雨半山空 2022-09-13 15:13:47

自问自答,经常用then 但很少new Promise 参数传错了 - -

let getSid = function (){
    return new Promise(function(resolve,reject){
        let sid = sessionStorage.getItem('sid');
        if (!sid) {
            axios({
                method: "post",
                url: COMMON_URL + '/app/init',
            }).then(function(res) {
                sessionStorage.setItem('sid', res.data.sid);
                sid = res.data.sid;
                resolve(sid)
            });
        }else{
            resolve(sid)
        }
    });
}
┼── 2022-09-13 15:13:47

你需要用回调的方式去resolve和reject。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文