Javascript 根据给定变量的长度动态创建函数
我有一个函数调用“getDocID”,它已经在其他一些JS库中定义,我们可以为它传递一个回调函数myCallback 要获取多个ID,我们必须将其链接起来,我们需要调用下面这样的函数,这很好Javascript 根据给定变量的长度动态创建函数,javascript,Javascript,我有一个函数调用“getDocID”,它已经在其他一些JS库中定义,我们可以为它传递一个回调函数myCallback 要获取多个ID,我们必须将其链接起来,我们需要调用下面这样的函数,这很好 function setDocIds(){ const testValues = ["2980", "2981","2982"]; const optID = "someValue"; var myCallback_2 = function (result2){ va
function setDocIds(){
const testValues = ["2980", "2981","2982"];
const optID = "someValue";
var myCallback_2 = function (result2){
var appID = result2.ID;
document.getElementById("div_2").innerHTML = appID;
}
var myCallback_1 = function (result1){
var appID = result1.ID;
document.getElementById("div_1").innerHTML = appID;
getDocID(optID, testValues[2], myCallback_2);
}
var myCallback = function (result){
var appID = result.ID;
document.getElementById("emailtemplate").innerHTML = appID;
getDocID(optID, testValues[1], myCallback_1);
}
getDocID(optID, testValues[0], myCallback);
}
任何人都可以指导我优化上述代码,并根据测试值的长度动态创建函数。使用和作用域
函数getDocID(id,num,callback){
回调({ID:`optId:${ID}和testVal:${num}`});
}
函数setDocIds(){
常量testValues=[“2980”、“2981”、“2982'];
const optID=“someValue”;
testValues.forEach((n,i)=>{
getDocID(optID,n,函数(结果){
const appID=result.ID;
const id=i==0?“emailtemplate”:“div_${i}”;
document.getElementById(id).innerHTML=appID;
});
});
}
setDocIds()代码>
为什么不尝试递归呢?您有电子邮件模板
,然后是div\u 1
然后是div\u 2
。如何从索引0、1、2中获取这些值?我也不清楚你所说的“给定变量的长度”是什么意思。我也不明白?你应该修正那些会导致语法错误的“漂亮”引号。@ChrisG我在做一个工作示例时注意到了这一点。谢谢。我不认为这是一样的-OP的代码将调用链接起来,以便在下一个调用中使用上一次调用getDocID
的结果。@PeterHull不,不是这样。是的,你们都是对的。不过getDocID可能有副作用。我同意@kemicofa,OP应该对此发表评论。