代码之家  ›  专栏  ›  技术社区  ›  ewok

协议:在最终确定之前或之后将协议发布给经纪人

  •  1
  • ewok  · 技术社区  · 7 年前

    在消费者测试结束时,我需要采取两个步骤:

    1. 向经纪人公布协议。

    起初,我是在定稿前发布的,如下所示:

    var opts = {
      //broker info
    }
    pact_node.publishPacts(opts).then(() => {
      provider.finalize()
    }).catch(() => {
      console.error("Could not publish pact!")
      provider.finalize()
    })
    

    我意识到的是 finalize()

    provider.finalize().then(() => {
      console.log("Publishing pact to broker")
      pact_node.publishPacts(opts)
    }).catch(() => {
      console.error("Could not finalize provider!")
    })
    

    但有了这一点 then 也不是 catch 块永远不会被执行。我没有收到任何消息打印到控制台。

    怎么回事?我应该按哪个顺序调用这些函数,为什么第二个顺序不起作用?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Beth Skurrie    7 年前

    我建议您完全在一个单独的任务中完成它,而不是使用与测试相同的代码,因为它应该只从CI完成,而不是从您的本地机器完成。