Javascript 通过js中的数组进行迭代
这段代码应该遍历数组中的每个webhook,并使用它们发送消息。它将它们打印到控制台,这意味着它们就在那里,并且它可以检测到它们,但是只有一个webhook被调用(当使用两个webhook进行测试时)有一些事情可能会给您带来问题。最值得注意的是,您需要创建一个新的XMLHttpRequest()Javascript 通过js中的数组进行迭代,javascript,node.js,electron,discord,Javascript,Node.js,Electron,Discord,这段代码应该遍历数组中的每个webhook,并使用它们发送消息。它将它们打印到控制台,这意味着它们就在那里,并且它可以检测到它们,但是只有一个webhook被调用(当使用两个webhook进行测试时)有一些事情可能会给您带来问题。最值得注意的是,您需要创建一个新的XMLHttpRequest() var webhook_array=webhook_url.split(“,”); log(webhook_数组); 功能发送(项目){ console.log(项目) /**在此处创建请求*/ co
var webhook_array=webhook_url.split(“,”);
log(webhook_数组);
功能发送(项目){
console.log(项目)
/**在此处创建请求*/
const request=new XMLHttpRequest();
/**现在该工作了*/
请求。打开(“POST”,项目);
setRequestHeader('Content-type','application/json');
//其他代码。。。
send(JSON.stringify(params));
}
webhook_array.forEach(send);
您包含的示例还有一些未定义的变量(
avatarurl
,webhook\u username
)和一个额外的大括号。确保这些都在你的代码中的其他地方:它们可能只是文件中没有进入你的问题的一部分。希望这有帮助 您的意思是您的项目正在“console.log(item)”中打印,但没有发出http请求?是的,没错……您需要使用async/wait
并等待每个http操作完成,然后再进行下一个操作。通常对于异步等待模式,使用forEach不是一个好主意。相反,将整个代码包装在一个匿名async
函数中,并在每个函数调用中使用wait使用for
循环遍历每个web_钩子。此外,假设 var webhook_array = webhook_url.split(",");
console.log(webhook_array);
function send(item) {
console.log(item)
request.open("POST", item);
request.setRequestHeader('Content-type', 'application/json');
var myEmbed = {
title: embed_title,
color: hexToDecimal(hexcolour),
description: message_content,
footer: {
text: "Powered by Yapplex Tools",
icon_url: avatarurl,
}
}
var params = {
username: webhook_username,
avatar_url: avatarurl,
embeds: [ myEmbed ]
}
request.send(JSON.stringify(params));
}
webhook_array.forEach(send);
function hexToDecimal(hex) {
return parseInt(hex.replace("#",""), 16)
}
}