当前位置: 首页 > 面试题库 >

javascript,$。ajax,变量名

夏侯和韵
2023-03-14
问题内容

我正在尝试遍历数组,并为for循环分配变量。所以像这样:

function Person(name, status){
  this.name = name;
  this.status = status;
}

var status = [];
var array = ["bill","bob","carl","ton"];
function exAjax(function(){
 for(var i = 0; i < array.length; i++){
   var name = array[i];
   console.log(name); =====> this gives the correct name

   $.ajax({
     url: xxxxxxx,
     success: function(data){
       if(data.stream === null){
         var person = new Person(name, "dead");
         console.log(name); =====> return undefined until the last
         person

         status.push(person);       
       }
     }

   })
   name = "";
 }
})

我遇到的问题是名称没有进入成功功能。我以为js会继续向上查找该变量,如果它在当前作用域中不存在?如果尝试console.log
name,我将无法为name变量定义!示波器大师我在做什么错?


问题答案:

您可以使用.queue()$.map()以保持范围name。此外,改变status阵列的具有属性的对象status,其中值是一个数组,以防止可能出现的冲突this.statusPerson对象。

请注意,您也可以连接.promise(/* queueName */)在执行任务.then()时,在所有排队的功能queueName,IEG,"status"一直呼吁,queueName
.length0

function Person(name, status){

  this.name = name;

  this.status = status;

}



var blob = new Blob(['{"stream":null}'], {type:"application/json"});

var url = URL.createObjectURL(blob);

// change `status` array reference, e.g., to `arr`

var arr = {status:[]};

var array = ["bill","bob","carl","ton"];



$(arr).queue("status", $.map(array, function(curr) {

  return function(next) {

    var name = curr;

    // do asynchronous stuff

    $.ajax({url:url, dataType:"json"})

    .then(function(data) {

       if(data.stream == null){

         var person = new Person(name, "dead");

         console.log(name, person);

         arr.status.push(person);

       }

    })

    .then(next) // call next function in `"status"` queue

  }

}))

.dequeue("status")

.promise("status")

// do stuff when all functions in `"status"` queue have completed,

// `"status"` queue `.length` is `0`

.then(function() {

   // `this` : `arr` as jQuery object

   // `this[0].status`: array containing objects pushed to `arr.status`

   console.log(this[0].status); // $(this).prop("status");

});


<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js">

</script>

jsfiddle https://jsfiddle.net/nnayjckc/2/

您也可以使用$.when().apply()$.map(),返回相同的结果

function Person(name, status) {

  this.name = name;

  this.status = status;

}



var blob = new Blob(['{"stream":null}'], {

  type: "application/json"

});

var url = URL.createObjectURL(blob);

// change `status` array reference, e.g., to `arr`

var arr = {

  status: []

};

var array = ["bill", "bob", "carl", "ton"];



$.when.apply($, $.map(array, function(curr) {

  var name = curr;

  return $.ajax({

      url: url,

      dataType: "json"

    })

    .then(function(data) {

      if (data.stream == null) {

        var person = new Person(name, "dead");

        console.log(name, person);

        arr.status.push(person);

      }

    })

}))

.then(function() {

  console.log(arr.status)

});


<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js">

</script>

jsfiddle https://jsfiddle.net/nnayjckc/3/



 类似资料:
  • 问题内容: 随着框架的发展,我决定将其拆分为文件,而不是将其保留在主设计文件中。但是通过这样做,函数的返回不会返回任何值。 数据不为空-如果我警告js文件中的值,它们在那里! 功能: 1 .js文件中的函数(在执行之前包含) 因此,这是执行部分: 并且测试是空的…我已经尝试了不同的编写方式,但是我想我误解了js的可能性吗? 问题答案: 您不能这样做:由于调用是异步的,因此get_data函数无法返

  • 主要内容:1. 变量的命名规则,2. 定义变量,3. 为变量赋值,4. 变量提升,5. let 和 const 关键字变量是所有编程语言的基础之一,可以用来存储数据,例如字符串、数字、布尔值、数组等,并在需要时设置、更新或者读取变量中的内容。我们可以将变量看作一个值的符号名称。 1. 变量的命名规则 在 JavaScript 中,变量名称并不能随便定义,需要遵循标识符的命名规则,如下所示: 变量名中可以包含数字、字母、下划线、美元符号; 变量名中不能出现汉字; 变量名中不能包含空格; 变量名不能

  • 变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。 变量就是存放一些内容的容器。 对于初学者,理解变量是重要的一环。 从分析变量这个名词,可以知道他是一个可以改变的量,这里的量就是代表某一种值。 在 JavaScript 中,变量就是一个用来存放值的容器,并且可以对容器中的值做修改。 每个变量都有唯一的变量名,使用变量名来区分变量。 1. 声明变量 在 JavaScript 中使用v

  • 问题内容: 我知道在PHP中可能有“变量”变量。例如 是否可以在JavaScript中将变量的名称引用为字符串?怎么做? 问题答案: 对此没有单一的解决方案(当然,有,但是请不要认真考虑)。可以通过来动态访问 一些 全局变量,但这不适用于函数本地的变量。 不会 成为属性的全局变量是使用和和定义的变量。 几乎总是比使用可变变量更好的解决方案! 相反,您应该查看数据结构并为您的问题选择正确的结构]。

  • 问题内容: 我试图将变量从我的javascript代码传递到服务器端PHP代码。我知道这必须通过ajax调用来完成,我相信我已经正确地完成了,但是访问变量是从我的ajax传递到我的php时遇到的麻烦,因为我是php的新手。到目前为止,这是我的代码: 我正在尝试将我的JavaScript变量“ userID”传递给php($ userID),但是在此过程中我出错了。谢谢您的帮助! 问题答案: 将这样

  • 问题内容: 目前,我正在使用Ajax来开发现有脚本,这是我以前从未使用过的东西。我在javascript文件中设置了一个变量,该变量从页面上的输入字段获取其值。我只需要使用Ajax将其发布到我的PHP页面,不知道从哪里开始, 我不确定您需要查看什么代码,但是我的javascript / AJAX代码是,我需要传递的变量是’var credoff’ 一定要采用这种格式吗? 问题答案: