为了账号安全,请及时绑定邮箱和手机立即绑定

异步ajax如何获取返回值?

异步ajax如何获取返回值?

翻过高山走不出你 2019-02-20 17:17:48
异步ajax设置返回值因为是异步 所以没获取到值就会返回接收到的往往是undefined那么把异步改成同步以外有没有什么方法可以获取异步的ajax我本来的思路是接受函数给个async 然后调用语句加awiat但是获取的是promise之类的东西 并没有获取到数据异步怎样获取返回值呢?在不使用框架的情况下 原生js有没有办法解决?
查看完整描述

2 回答

?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

闭包


function a1(data){

    console.log(data)

}

$.ajax().done(function(data){

    a1(data)

})

可以用es6的Generator改造promise为同步 co.js就是这样做的 co简写:


function co(generator) {

  return function(fn) {

    var gen = generator();

    function next(err, result) {

        if(err){

            return fn(err);

        }

        var step = gen.next(result);

        if (!step.done) {

            step.value(next);

        } else {

            fn(null, step.value);

        }

    }

    next();

   }

}

co(function * () {

    var data= yield $.ajax('a.json');

    //同步写法

    console.log(data);

})


查看完整回答
反对 回复 2019-02-23
  • 2 回答
  • 0 关注
  • 1172 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信