jQuery技术:函数不返回其他函数的值

试图编写一个从文本文件中读取数据的函数。 该函数工作正常,但我想在其他函数中读取其数据。 有人可以帮我告诉如何将y的值返回到read()函数

     function read() { $.get("version.txt?_ts=" + new Date().getTime(), function (data) { var y1 = parseInt(data[0]); var y2 = parseInt(data[1]); var y = (y1 * 10) + y2; return y; }); } function drr() { var d = read(); document.write(d); }  not working  

    在您的代码中,您正在使用AJAX通过JQuery:

     $.get(url, callback) 

    $get方法命中url并将结果传递给回调方法,它不会返回它。 由于AJAX是异步的,因此不会立即调用callback ,而是发生以下情况:

    在上面的序列中,第二步可以与其后的任何步骤交换。 尽管如此,该序列表明read方法退出数据处理发生时之间没有关系 。 因此,如果您需要对结果执行某些操作(在页面上显示),那么您应该在callback方法中执行此操作。

    以下是使用您的代码编辑的示例:

     function read() { $.get("version.txt?_ts=" + new Date().getTime(), function(data) { var y1 = parseInt(data[0]); var y2 = parseInt(data[1]); var y = (y1*10)+y2; document.write(y); }); } 

    除了AJAX的异步性质之外,您的代码还有另一个问题。 在read方法中,您希望返回一个值,但实际上它不会返回任何值。 这使得drr函数无效。

    这样做:

     function read() { $.get("version.txt?_ts=" + new Date().getTime(), function(data) { var y1= parseInt(data[0]); var y2= parseInt(data[1]); var y= (y1*10)+y2; document.write(y); /* this is the change, process the result when it's received here */ }); } function drr() { read(); } 

    也将html更改为更合适的语法

      

    通常,当你有$ .ajax()调用时,它是异步的 – 当成功处理请求时,会发出请求并执行成功处理程序。

    因此,如果您使用ajax()调用的返回值,则不是从服务器接收的响应,而是请求对象。

    $ .get是异步函数,读取函数没有返回,需要使用回调:

     function read(callback) { $.get("version.txt?_ts=" + new Date().getTime(), function(data) { var y1 = parseInt(data[0]); var y2 = parseInt(data[1]); var y = (y1 * 10) + y2; callback(y); }); } function drr() { read(function(txt) { document.write(txt); }); } 

    试试这个。

      function read() { var result=0; $.get("version.txt?_ts=" + new Date().getTime(), function (data) { var y1 = parseInt(data[0]); var y2 = parseInt(data[1]); var y = (y1 * 10) + y2; result=y; }); return result; } function drr() { var d = read(); document.write(d); } 

      以上就是jQuery教程分享函数不返回其他函数的值相关内容,想了解更多jQuery开发(异常处理)及jQuery教程关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/jquerytutorial/541434.html

      (0)
      上一篇 2021年1月3日
      下一篇 2021年1月3日

      精彩推荐