【发布时间】:2019-01-25 09:48:07
【问题描述】:
目前正在学习 JavaScript 中回调的含义,我正在努力理解回调的工作原理以及传递 this 或传递 that 的术语以及它如何与回调一起工作?我有一些示例代码,我想展示一下并简要解释为什么我不明白。
var users = ["Sam", "Ellie", "Bryan"];
function addUser(username, chickenNugget) {
setTimeout(function() {
users.push(username);
chickenNugget();
}, 200);
}
function getUsers() {
setTimeout(function() {
console.log(users);
}, 100);
}
addUser("Jake", getUsers);
getUsers();
调用 chickenNugget 时会发生什么?函数中的代码是否会在遇到 chickenNugget 时停止并重置,直到再次调用函数 addUser?
【问题讨论】:
-
“为什么参数 chickenNugget 被归类为回调” - 因为...它被 addUser 回调了?
-
添加了新信息
-
JS 中没有参数类型,所以
chickenNugget只是一个可以传递任何东西的参数(number,string,function,object,...)也可以随意命名。 -
不清楚你在问什么。您是否尝试运行代码以查看它的作用?这些与标题有何关系?
-
所以我在看一个关于回调的教程,他使用了不同的术语,比如 this 传递给 this ,我想这是什么意思,他使用 setTimeout 允许回调从addUser 在 getUsers 之前,即使在回调未在 addUser 代码块中实现之前处理了 getUsers
标签: javascript asynchronous callback timeout