Javascript 按主题将1个哈希表(或切换案例列表)拆分为多个

Javascript 按主题将1个哈希表(或切换案例列表)拆分为多个,javascript,ecmascript-6,Javascript,Ecmascript 6,我正在构建一个FB机器人,并试图找到一种方法,将我的答案细分为某些用户输入 到目前为止,我有一个超过600个条目的大型交换案例,但我想知道是否有可能将它分割成几个较小的列表,在这些列表中,我可以运行一个单一的承诺来运行所有异步 以下是我已经考虑和尝试过的: 1开关盒:工作,但似乎尴尬的情况下,大大不同的主题。i、 e会话案例(“嗨,嗨!等)和餐馆或活动的某些请求 哈希表查找——与上面相同的问题——混合不同的主题似乎很笨拙 忽略拒绝()并在第一次解决时停止的自定义承诺。这适用于我的分段列表,这些列

我正在构建一个FB机器人,并试图找到一种方法,将我的答案细分为某些用户输入

到目前为止,我有一个超过600个条目的大型交换案例,但我想知道是否有可能将它分割成几个较小的列表,在这些列表中,我可以运行一个单一的承诺来运行所有异步

以下是我已经考虑和尝试过的:

  • 1开关盒:工作,但似乎尴尬的情况下,大大不同的主题。i、 e会话案例(“嗨,嗨!等)和餐馆或活动的某些请求
  • 哈希表查找——与上面相同的问题——混合不同的主题似乎很笨拙
  • 忽略拒绝()并在第一次解决时停止的自定义承诺。这适用于我的分段列表,这些列表都已承诺,但对于拒绝案例,我无法得到响应…我尝试了:

    var t1 = test.switchCase1(event); //switch case 1 - restaurants
    var t2 = test.switchCase2(event); //switch case 2 - conversation
    var t3 = test.switchCase3(event); //switch case 3 - misc
    
    //resolve first, ignore rejects
    if (!Promise.first) {
      Promise.first = function (promise) {
        return new Promise ( (resolve,reject) => {
          promise.forEach( (prs) => {
            Promise.resolve(prs)
              .then(resolve);
          })
        })
      }
    }
    Promise.first([t1,t2,t3]).then(response => {
      utils.callSendAPI(response); //sends response to user
    });
    

  • 我是不是看错了?我查了很多选项,比如对象文字查找,但似乎没有任何东西能回答我的问题。

    看,听起来你在寻找的是
    Promise.race
    。你认为哈希表到底有什么笨重和笨拙的地方?如果只是符号,那就问问我如何拆分t在多个文件中更新(每个主题一个).@Bergi Promise.race在第一次解析或拒绝时结束,这意味着按主题划分的几个单独的哈希表需要一些满足或拒绝才能打破。上面的自定义承诺类似于一场竞赛,但只接受第一次解析并忽略拒绝。将编辑标题,谢谢。我真的不明白为什么要使用任何承诺这里没有真正的异步,是吗?