javascript - JS如何让一个function在请求之后再返回值?
阿神
阿神 2017-04-11 12:12:40
[JavaScript讨论组]
function checkToken(token: string) {
    let flag:boolean = false;
    if (Cookies.get('token')) {
            Reqwest({
                url: 'token/check'
            }).then(res=> {
                flag = true
            }).fail((res) => {
                flag = false;
            })
            return flag;
    } else {
        flag = false;
    }
    console.log('checkToken flag', flag);
    return flag
 
}

大概能看懂吧,就是里面有个请求来根据返回值确定token是否有效。然后现在的问题是,此函数先return再执行reqwest,我想在reqwest请求之后,次函数再返回,怎么搞? 同时reqwest返回的是一个proimise。

阿神
阿神

闭关修行中......

全部回复(3)
天蓬老师

既然你都说了里面有Promise对象了,也就涉及异步编程,就继续返回一个Promise对象,在外部对这个返回的Promise进行判断操作

巴扎黑

就是不存在或是Req返回失败这个函数就是失败呗:

function checkToken(token) {  
    if (Cookies.get('token')) {
        return  Reqwest({url: 'token/check'});
    }
    return new Promise(function(resolv,reject){ reject(/*自行定义参数*/); });
}
PHPz

将异步代码单独封装成一个返回promise实例的函数,在同步代码中使用这个函数,.then()中即可获取相应的值,个人觉得楼主可能想要的是以下的代码

function retPromise() {
    return new Promise(function(resolve,reject){
        Reqwest({
            url: 'token/check'
        }).then(res=> {
            resolve(true)
        }).fail((res) => {
            reject(false)
        })
    }
}

function checkToken(token) {
    let flag = false
    if (Cookies.get('token')) {
        retPromise().then(function(res){
            flag = res
        })
    })
    } else {
        flag = false
    }
    console.log('checkToken flag', flag);
    return flag
}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号