#Clean code without nesting on('collect'

1 messages · Page 1 of 1 (latest)

fluid kiln

I'm trying to get 5 sequential infos from the user but the only way to do that was nesting a lot of callbacks. Is there another way to do it without nesting and without using forms?

Example code:

 try {

    const cbResourceName = channel.createMessageComponentCollector({ filter: filterResourceName, componentType: ComponentType.StringSelect, time: 300000, max: 1 });

    cbResourceName.on('end', collected => {
        interaction.deleteReply().catch((e) => {})
    });

    cbResourceName.on('collect', async (userMsgResourceName) => {
        
        const cbVersion = interaction.channel.createMessageCollector({ filter: filterVersion, max: 1,time: 300000 });

        cbVersion.on('end', collected => {
            botMsgVersion.delete().catch(e => {});
        });

        cbVersion.on('collect', async (userVersion) => {
            
            const csChangelog = interaction.channel.createMessageCollector({ filter: filterChangelog, max: 1,time: 300000 });

            csChangelog.on('end', collected => {
                botMsgChangelog.delete().catch(e => {});
            });

            csChangelog.on('collect', async (userMsgChangelog) => {
                
                const cbChanges = interaction.channel.createMessageCollector({ filter: filterChanges, max: 1,time: 300000 });

                cbChanges.on('end', collected => {
                    botMsgChanges.delete().catch(e => {});
                });

                cbChanges.on('collect', async (userMsgChanges) => {
                    
                    const csImgLink = interaction.channel.createMessageCollector({ filter: filterImgLink, max: 1,time: 300000 });

                    csImgLink.on('end', collected => {
                        botMsgImgLink.delete().catch(e => {});
                    });

                    csImgLink.on('collect', async (userMsgImgLink) => {
                        
                    })
                })
            })
        })
    })