首页 > js如何获得onclick绑定的函数的返回值以及Ajax调用后的返回值?

js如何获得onclick绑定的函数的返回值以及Ajax调用后的返回值?

主要问题有两个:
1、通过get调用Ajax得到的值returnData如何返回给foo( )?
2、在onclick执行后如何将返回值returnData赋给最外层的returnData
//把我遇到的问题简化抽象出来是这样的:

(function(){
    var returnData;
    for(var i=0; i<length; i++){
        element.onclick = helper(i);
    }

    function helper(i){
        return function(){
            returnData = foo(i);
        } 
    }

    function foo(x){
        var returnData;
        //get函数是Ajax get方法的封装
        get(url, {}, function(text){
            returnData = text + x;
        });
        return returnData;
    }
})();

只回答第一个: 无解,你的打开方式不对。

看来你还是再用同步的思维在思考问题,但说到ajax,就不得不切换到异步的思维。

是否想过: ajax为什么要使用回调函数?

因为网络是有时延的,等待请求意味着阻塞,这可不行。因此ajax调用后函数就立即返回。但这样一来数据就取不到了——因为你不知什么时候数据会来。既然不能主动拿到数据,我们可以换一种方法,即将处理数据的操作传入——这便是回调。

作为返回值返回,这是同步操作才有的特性,在此做不到。

解决方案:

【热门文章】
【热门文章】