ajax 或者 fetch的结果怎么return出去

原本代码是判断浏览器支不支持fetch,然后请求服务器拿数据,现在想把这个这一块封装成一个函数,return的时候有点理不清,异步一直return是undefined,想问怎么能通过一个函数的return拿到数据


if(self.fetch) {
    fetch('/db/queryAll').then((res) => {
        if(res.ok){
            res.json().then((data) => {
                this.setState({
                    data : data.results
                })
            })
        }
    });
}else{
    var That = this;
    console.log('垃圾浏览器');
    $.ajax({
        url: '/db/queryAll',
        type: 'GET'
    })
        .done(function(data,textStatus, req) {
            That.setState({
                data : data.results
            })
        });
}
if(self.fetch) {
    fetch('/db/queryAll').then((res) => {
        if(res.ok){
            return (
                then((data) => {
                    return data.results  //////这样return不行,请问要怎么return
                })
            )
        }
    })
}else{
    var That = this;
    console.log('垃圾浏览器');
    $.ajax({
            url: '/db/queryAll',
            type: 'GET'
        })
        .done(function(data,textStatus, req) {
            return data.results  //////这样return不行,请问要怎么return
        });
}
阅读 4.4k
1 个回答

你这code里的return是可以的吧,这个return是回调函数的return,我猜你是想在上面code所在的function里return出来,做不到的,用defer/promise对象吧

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题