【问题标题】:Is there a way to make this code shorter? (reaction collector)有没有办法让这段代码更短? (反应收集器)
【发布时间】:2019-03-08 08:33:08
【问题描述】:
const backwardsFilter = (reaction, user) => reaction.emoji.name === '⏪' && user.id === message.author.id;
const forwardsFilter = (reaction, user) => reaction.emoji.name === '⏩' && user.id === message.author.id;
const backwards = msg.createReactionCollector(backwardsFilter, {time: 90000});
const forwards = msg.createReactionCollector(forwardsFilter, {time: 90000});

我尝试为两个收集器制作一个过滤器,但仍然需要输入(x,y,z) => filter(x,y,z,'⏪')

const filter = (reaction, user, c, emoji) => reaction.emoji.name === emoji && user.id === message.author.id;
const backwards = msg.createReactionCollector((x,y,z) => filter(x,y,z,'⏪'), {time: 90000});
const forwards = msg.createReactionCollector((x,y,z) => filter(x,y,z,'⏩'), {time: 90000});

【问题讨论】:

    标签: javascript node.js function discord.js


    【解决方案1】:

    您可以创建一个高阶函数,该函数接受您要查找的字符并返回一个接受三个参数(reactionuser 和 @987654323)的函数@,对应你当前的(x, y, x) =>),并返回相应的过滤操作。

    此外,这里的任何代码中似乎都没有使用 c(与 z 相同),因此请随意将其从参数列表中删除。

    const makeFilter = emoji => (reaction, user) => reaction.emoji.name === emoji && user.id === message.author.id;
    const backwards = msg.createReactionCollector(makeFilter('⏪'), {time: 90000});
    const forwards = msg.createReactionCollector(makeFilter('⏩'), {time: 90000});
    

    【讨论】:

    • 智能解决方案!谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-22
    • 1970-01-01
    • 1970-01-01
    • 2021-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多