Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 根据传递的参数数运行可变数量的行_Javascript_Node.js_Variables_Arguments_Discord - Fatal编程技术网

Javascript 根据传递的参数数运行可变数量的行

Javascript 根据传递的参数数运行可变数量的行,javascript,node.js,variables,arguments,discord,Javascript,Node.js,Variables,Arguments,Discord,我想用不同数量的输入运行这段代码,因为我正在尝试启动一个npm库。我唯一的问题是,我不知道如何完成我正在努力实现的目标 基本上,我希望函数“testfunc(){}”能够运行特定的代码行,每次都用一个参数替换其中的一部分。示例如下: function testfunc{ for (var i = 0; i < arguments.length; i++) { console.log(arguments[1]); console.log(arguments[2

我想用不同数量的输入运行这段代码,因为我正在尝试启动一个npm库。我唯一的问题是,我不知道如何完成我正在努力实现的目标

基本上,我希望函数“testfunc(){}”能够运行特定的代码行,每次都用一个参数替换其中的一部分。示例如下:

  function testfunc{

    for (var i = 0; i < arguments.length; i++) {

    console.log(arguments[1]);
    console.log(arguments[2]);
    console.log(arguments[3]);
    console.log(arguments[4]);
    console.log(arguments[5]);
    }

    }
函数testfunc{
for(var i=0;i
这是我现在拥有的一个例子。我希望用户能够更改消息的编辑次数

client.on('message', message => {

if(message.content == '69'){

function sleep(ms) {
    return new Promise(resolve => setTimeout(resolve, ms));
    }

const wait = ms => new Promise(resolve => setTimeout(resolve, ms));

function animate() {

    for (var i = 0; i < arguments.length; i++) {
        console.log(arguments[i]);
        message.channel.send(arguments[1]).then((sentMessage) => wait(1*1000).then((waitDone) => sentMessage.edit(arguments[i])))


// message.channel.send(arguments[1]).then((sentMessage) => {
//     wait(1*1000).then((waitDone) => sentMessage.edit(arguments[1])).then((sentMessage) => {
//         wait(1*1000).then((waitDone) => sentMessage.edit(arguments[2])).then((sentMessage) => {
//             wait(1*1000).then((waitDone) => sentMessage.edit(arguments[3])).then((sentMessage) => {
//                 wait(1*1000).then((waitDone) => sentMessage.edit(arguments[4]))
//                 })
//             })
//         })
//     })
// }

}

animate('1','2','3','4')

}}})
client.login(token);
client.on('message',message=>{
如果(message.content='69'){
功能睡眠(ms){
返回新承诺(resolve=>setTimeout(resolve,ms));
}
const wait=ms=>newpromise(resolve=>setTimeout(resolve,ms));
函数animate(){
for(var i=0;iwait(1*1000)。然后((waitDone)=>sentMessage.edit(参数[i]))
//message.channel.send(参数[1])。然后((sentMessage)=>{
//等待(1*1000)。然后((waitDone)=>sentMessage.edit(参数[1])。然后((sentMessage)=>{
//等待(1*1000)。然后((waitDone)=>sentMessage.edit(参数[2])。然后((sentMessage)=>{
//等待(1*1000)。然后((waitDone)=>sentMessage.edit(参数[3])。然后((sentMessage)=>{
//等待(1*1000)。然后((waitDone)=>sentMessage.edit(参数[4]))
//                 })
//             })
//         })
//     })
// }
}
设置动画('1'、'2'、'3'、'4')
}}})
client.login(令牌);

我相信这里可能有一个简单的答案,我已经开始考虑做一个while循环,但我不太明白…

使用
async/wait
这可以大大简化。基本上,您只需迭代函数的参数,等待每个异步调用,然后再继续下一个参数:

async function animate() {
    // send with the first argument
    const sentMessage = await message.channel.send(arguments[0]);
    // continue editing with the remaining args
    for (let i=1; i < arguments.length; i++) {
        await wait(1000);
        await sentMessage.edit(arguments[i]);
    }
}
async函数animate(){
//使用第一个参数发送
const sentMessage=wait message.channel.send(参数[0]);
//继续编辑剩余的参数
for(设i=1;i
使用
async/await
这可以大大简化。基本上,您只需迭代函数的参数,等待每个异步调用,然后再继续下一个参数:

async function animate() {
    // send with the first argument
    const sentMessage = await message.channel.send(arguments[0]);
    // continue editing with the remaining args
    for (let i=1; i < arguments.length; i++) {
        await wait(1000);
        await sentMessage.edit(arguments[i]);
    }
}
async函数animate(){
//使用第一个参数发送
const sentMessage=wait message.channel.send(参数[0]);
//继续编辑剩余的参数
for(设i=1;i
只是为了让我正确理解您的问题-您想运行
发送
等待
编辑
的顺序,就像
动画
函数的参数长度一样频繁?@eol我只需要设置
发送
,然后
编辑
变量到不同的参数,但是,然后尽可能频繁地运行这些长度<代码>等待
被定义为1秒,以便不受API限制。好的,我想我得到了,将发布一个答案:)以便我正确理解您的问题-您想运行
发送
等待
的序列,
edit
animate
函数的参数长度一样频繁?@eol我只需要将
send
edit
变量设置为不同的参数,然后根据长度运行这些变量<代码>等待被定义为一秒钟,以不受API限制的速率。好的,我想我明白了,我会发布一个答案:)这正是我所需要的,只需要大约2个月的编码时间。谢谢你的帮助:)很乐意帮忙:)这正是我所需要的,只需要大约两个月的时间就可以编写了。谢谢你的帮助:)很乐意帮忙:)