Javascript数组推送中断循环
Javascript Array Push breaks loop?
我在手机应用程序中有下面的Typescript类,它的Click函数由按钮点击触发。感兴趣的是todoItemTable.read
,它从我的云后端获取ToDoItems数组。当前的代码可以工作,并吐出8个todo项的文本,但我想将文本存储在一个数组中,所以如果你看到我推入todos
的注释行,我认为我会这样解决这个问题。然而,这行代码使循环一直在运行,所以我记录了两次第一个ToDo项目,然后什么也没记录。应用程序没有挂起,也没有错误。
export class HelloWorldModel extends Observable {
public todos: any[];
constructor() {
super();
}
Click() {
var client = new MobileServiceClient("https://example.azurewebsites.net");
console.log("CLIENT");
var todoItemTable = client.getTable("TodoItem");
console.log("Table");
this.todos = [];
todoItemTable.read<TodoItem>().then(function (results) {
// results is array of TodoItem-s
console.log(results.length);
console.log(results[0].text);
for (let i of results) {
console.log(i.text);
//this.todos.push(i.text);
}
});
}
}
出了什么问题?
要使用相同的作用域,请使用箭头函数,如下所示:
todoItemTable.read<TodoItem>().then((results) => {
for (let i of results) {
this.todos.push(i.text);
}
});
请参阅Mozilla开发者网络的Arrow函数
我也遇到了同样的问题,每当我尝试在loop
中的任何位置使用array.push()
时,它都会运行一次,然后停止。我通过将数组实例化为loop
的空数组(array: string[ ] = [ ]
)OUTSIDE来解决这个问题。然后实例化将被推送到循环内部的数组的新字符串。希望这对任何人都有帮助
相关文章:
- 中断javascript循环
- 当使用return语句时,循环不会中断
- Javascript数组推送中断循环
- 为什么内部Javascript循环会阻止外部循环中断(即无限循环)
- Javascript代码中断循环
- 在循环顶部中断循环的显式条件
- 完成ajax调用数组的循环,而不是在某个调用出错时中断
- 在负数之前中断循环
- 中断循环函数
- 中断循环的 Web Worker
- 中断语句不会中断循环
- 基于不存在的元素中断循环
- 节点函数未中断循环
- 这个for循环如何决定何时中断循环
- 是Javascript中的break关键字,仅用于中断循环
- getElementById()正在中断循环
- 在 Javascript 中从开关大小写内部中断循环
- 每三次迭代后中断循环
- jQuery 使用回调在 AJAX 请求中中断循环
- js继续和中断循环