Javascript 是否将参数传递给forEach循环内的回调函数?
我正在使用客户端JavaScript。我想在forEach循环中运行回调,并将forEach循环中变量的值传递给回调 这是我的(坏的)代码: 当我运行此命令时,会收到一条警告,提示Javascript 是否将参数传递给forEach循环内的回调函数?,javascript,Javascript,我正在使用客户端JavaScript。我想在forEach循环中运行回调,并将forEach循环中变量的值传递给回调 这是我的(坏的)代码: 当我运行此命令时,会收到一条警告,提示console.log(tag)中的tag未定义 如何将标记的值传递给回调?我相信这很简单 也许您可以使用高阶函数(返回函数的函数): var标签=['foo','bar']; var createDisplayTagCallback=函数(标记){ 返回函数(错误、结果){ 如果(错误){ console.warn(
console.log(tag)
中的tag
未定义
如何将标记的值传递给回调?我相信这很简单 也许您可以使用高阶函数(返回函数的函数):
var标签=['foo','bar'];
var createDisplayTagCallback=函数(标记){
返回函数(错误、结果){
如果(错误){
console.warn(“来自服务器的错误”,错误);
}
否则{
控制台日志(标签);
}
}
};
tags.forEach(函数(tag){
if(is_项目){
addTag(可视化标识、标记、createDisplayTagCallback(标记));
}否则{
Page.addTag(Page_id,tag,createDisplayTagCallback(tag));
}
});
但尚未测试此代码…您必须在addTag中有一个回调
this.addTag(visualisation_id, tag, callback) {
callback(error, result)
}
换成
this.addTag(visualisation_id, tag, callback) {
callback(error, result, tag)
}
displayTag
接收名为error
和results
的参数,参数列表中不包含tag
。函数体中使用的参数在函数定义的参数列表中命名(声明),而不是在调用函数时命名(声明)。当然-我理解这一点,因为我希望问题能说明这一点!问题是如何将tag
的值传递给函数。有没有办法,或者我需要在forEach
中编写两次函数?只需更改change function addTag将标记传递给callback@RicharddisplayTag=函数(错误、结果、标记)
-您可以通过这种方式添加参数。假设.addTag
方法就是这样传递它的。我们不知道它们是做什么的,所以我们唯一能建议的就是“添加参数”-我们不知道如何调用此函数。@BartHofland,在OP告诉我们之前,这是我们不知道的。addTag
函数似乎是在(外部)类/模块项目和页面中定义的。不知道OP是否能改变这些功能。但我同意你的建议非常合理。如果我自己创建了关于标签的功能,我的addTag函数在几个类中,比如Page
和Project
会调用一个回调函数,该回调函数被传递给addTag函数,我也会将受影响的标记作为参数传递给回调函数调用,以防回调函数需要它。Pfff。我讨厌回电话。仅针对您需要编写的复杂解释。;)非常感谢。这就是我最后要做的,因为我可以改变那些函数。
this.addTag(visualisation_id, tag, callback) {
callback(error, result)
}
this.addTag(visualisation_id, tag, callback) {
callback(error, result, tag)
}