JavaScript中返回值出现undefined的几种可能

第1部分:应用场景

华仔在结合jquery mobile 开发手机网页端的时候,运用js中function进行数据传递时,发现返回的都是undefined,当时一头雾水,不知道如何是好。

第2部分:解决方案

经过好几轮尝试和资料查找,发现问题有迹可循,我使用的是ajxa进行post,直接在ajxa的success方法中进行返回,通过了解,这个方法返回并不代表整个function返回,这也就表示ajxa其实不适用于用return,因为即使用了,也不能跳出整个function,将所需数据真正返回给调用这个function的地方,后面我就修改思路,改成了利用ajxa中success方法对变量进行赋值,然后在外面进行return这个变量,具体代码如下:

            function JudgeProduct(gx) {
                var data = {
                    StripOrderNo: document.getElementById("加工单号").value,
                    Todo: "JudgeProduct",
                    gx: gx,
                    
                };
                var status01;
                $.ajax({
                    type: "POST",
                    ContentType: "application/json",
                    url: "http://XXXXXXXXXXXXXXXXXXXX.ashx",
                    data: data,
                    timeout: 8000,
                    async: false,
                    dataType: 'json',
                    success: function (data1, textStatus) {
                        jsonObj.Rows = eval('(' + data1 + ')');
                        if (jsonObj.Rows[0].status != "Ok") {
                            status01 = jsonObj.Rows[0].status;
                            return status01;
                        } else {
                            status01 = "Ok";
                            return status01;
                        }
                    },
                    error: function () {
                        alert('服务器连接有点问题,稍会再试。');
                    }
                });
                return status01;
            }

JavaScript中返回值出现undefined的结论

在手机端开发的过程中,深感调试不便,不过慢慢的也就习惯了,操作起来也会更加娴熟,遇到问题多思多查。此外还有以下几个原因会导致返回值为undefined:

1、我们在function中return的变量赋值确实错了

2、我们在function中没有在所有的判断路径上都写上返回值

这两个问题同visual basic(vb.net)是一样的

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容