ajax异步传输数据,return返回值为空

今天在项目中遇到了一个问题,就是在定义了一个函数drawHtml(),本意是想在函数运行结束后,返回拼接的字符串,可是函数运行结束后始终返回的是undefined

有BIG的代码:

function drawHtml(){
        var html ="";
        $.ajax({
            type:‘get‘,
            url:‘http://localhost:63342/projectStudy/json/data.json‘,
            success:function(data){
                var dataList = data.peopleList;
                for(var i=0;i<dataList.length;i++){
                   html+=`<p>姓名</p><p>${dataList[i].name}</p>
                            <p>年龄</p><p>${dataList[i].name}</p>`
                }
                console.log(html);//此处输出的html是有值的
            }
        })
        console.log(html);//返回的值为空
        return html;
    }

出现问题的原因:因为jquery的ajax是异步请求,在函数还没有执行完ajax请求时,就已经return出来了html。所以输出html是空值

解决方法:

function drawHtml(){
        var html ="";
        $.ajax({
            type:‘get‘,
            url:‘http://localhost:63342/projectStudy/json/data.json‘,
            async:false,//将异步的方法改为同步
            success:function(data){
                var dataList = data.peopleList;
                for(var i=0;i<dataList.length;i++){
                   html+=`<p>姓名</p><p>${dataList[i].name}</p>
                            <p>年龄</p><p>${dataList[i].name}</p>`
                }
                console.log(html);//此处输出的html是有值的
            }
        })
        console.log(html);//返回的值为空
        return html;
    }

这样问题就解决了。

原文地址:https://www.cnblogs.com/bllx/p/9038457.html

时间: 2024-10-10 10:38:45

ajax异步传输数据,return返回值为空的相关文章

ajax 异步调用把返回值赋给一个全局变量的用法,最主要的就是把async属性改为 false,

<script> $(document).ready(function () { <% string dqsj = System.DateTime.Now.ToString("yyyy-MM-dd"); %> seach(); }); var shuju = ""; var sj = ""; function se() { seach(); } function seach() { $(function () { var

ajax同步异步设置导致的问题及return返回值(返回ajax请求的数据)

一.ajax同步异步设置导致父子页面数据更新不一致问题. 1.在修复入宿退宿功能时,发现点击退宿.入宿按钮时.父页面数据更新了但是子页面数据要重新打开才能更新.如下图: 因为数据刷新函数如下:父页面刷新函数findRoomPeople()采用的是异步,所以,操作的数据还没更新,子页面刷新函数loadRoomInfo()就已经执行,所以获取到的数据还是之前的数据. <script> roomHandle: function () { /*刷新数据变化*/ parent.cootoo_room.f

获取JavaScript异步函数的返回值

今天研究一个小问题: 怎么拿到JavaScript异步函数的返回值? 1.错误尝试 当年未入行时,我的最初尝试: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <script> function getSomething() {  var r = 0;  setTimeout(function() {  r = 2;  }, 10);  return r; } function compute() {  var x = getSomething();  alert

通过jquery的ajax异步请求接收返回json数据

jquery的ajax异步请求接收返回json数据方法设置简单,一个是服务器处理程序是返回json数据,另一种就是ajax发送设置的datatype设置为jsonp格式数据或json格式都可以. 代码示例如下: $('#send').click(function () { $.ajax({ type : "GET", url : "a.php", dataType : "jsonp", success : function (data) { $.

MSSQL - 存储过程Return返回值

1.存储过程中不使用外部参数. 存储过程: SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: HF_Ultrastrong -- Create date: 2015年7月19日22:09:24 -- Description: 判断是否有数据,并使用Return返回值 -- =============================

JavaScript函数概述、声明、return 返回值

一.函数的概述: 1.函数是定义一次但却可以调用或执行任意多次的一段 JS 代码.  2.函数有时会有参数,即函数被调用时指定了值的局部变量.  3.函数常常使用这些参数来计算一个返回值,这个值也成为函数调用表达式的值.(简单的说就是完成一个特定功能的代码块).  4.在 javaScript 中,Function(函数)类型实际上是对象.每个函数都是 Function 类型的实例,而且都与其他引用类型一样具有属性和方法.  5.由于函数是对象,因此函数名实际上也是一个指向函数对象的指针. 6.

4.return 返回值

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> return 返回值 </titl

C# 调用存储过程操作 OUTPUT参数和Return返回值

本文转载:http://www.cnblogs.com/libingql/archive/2010/05/02/1726104.html 存储过程是存放在数据库服务器上的预先编译好的sql语句.使用存储过程,可以直接在数据库中存储并运行功能强大的任务.存储过程在第一应用程序执行时进行语法检查和编译,编译好的版本保存在高速缓存中.在执行重复任务时,存储过程可以提高性能和一致性.由于存储过程可以将一系列对数据库的操作放在数据库服务器上执行,因而可以降低Web服务器的负载,提高整个系统的性能. 1.创

ajax请求且带返回值的代码实例

ajax请求且带返回值的代码实例: 现在比较流行使用jquery的ajax来实现一些无刷新请求效果,本章节提供一个非常简单的代码实例供大家参考之用,希望能够给需要的朋友带来一定的帮助,代码如下: <script type="text/javascript"> /* 请求Ajax 带返回值,并弹出提示框提醒 --------------------------------------------------*/ function getAjax(url,parm,callBa