怎么获取回调函数中的值
loadData: function (func) {
            var _this = this;
            var db = dbUtil.prepareDatabase();
            db.transaction(function (context) {
                context.executeSql('select * from tb_hetong', [],
                    function (ts, data) {
                        console.log(data);
                        if (data && data.rows && data.rows.length) {
                            for (var i = 0; i < data.rows.length; i++) {
                                _this.dataList.push('['+ data.rows[i].qd_date  +','+ data.rows[i].status +','+ data.rows[i].ht_cash+']');
                            }
                            func(data)
                        }
                        _this.dataList = '[' + _this.dataList +']';

                    },
                    function (ts, message) {
                        console.log(message)
                    });
            });

loadChart: function () {
            var myChart = echarts.init(document.getElementById('main'));
            var _this = this;
            this.loadData(function (){
                _this.data0 = '['+_this.dataList+']';
            });
            alert("|||||"+_this.data0);

                        }

怎么在loadChart中获取 _this.data0的值 data0定义的是全局

3个回答

方法很多:
第一种:在回调函数外,声明一个变量,然后在回调函数中,将你想要的值赋值给这个变量!
第二种:在你的回调函数里去调用外部你下一步需要执行的function,然后将值带过去!
第三种:return
可能还有别的方法

Tastill
Tastill 回复Q825633757: 第一种和第二种是不可能不行的。第三种容易出错! 你声明一个当前页面的顶层变量,然后在你的回调函数赋值之前打一个alert,你看下这个alert有没有弹出来,数据是多少,然后你在赋值之后,在alert一下你声明的这个变量!
大约 2 年之前 回复
Q825633757
Q825633757 我都试了 不行。。。。。
大约 2 年之前 回复

第一种和第二种是不可能不行的。第三种容易出错!
你声明一个当前页面的顶层变量,然后在你的回调函数赋值之前打一个alert,你看下这个alert有没有弹出来,数据是多少,然后你在赋值之后,在alert一下你声明的这个变量!

Q825633757
Q825633757 loadChart: function () { var data0 = []; var myChart = echarts.init(document.getElementById('main')); var _this = this; this.loadData(function (){ alert("|||||"+_this.dataList); data0 ="["+ _this.dataList+"]"; }); alert(data0); 这样写先alert了空 然后 又 alert了"||||+数据"
大约 2 年之前 回复
var a = ""; function cs(hd) { var b = 1; if(typeof hd == "function"){ hd(b); } }; function hd(b){ alert("b:" + b); a = b; alert("a:" + a); }; cs(hd);
这个a 不就在回调函数里被赋值了么?a=b=1
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!