错误:尝试在javascript中实现多个交互时多次调用done()
我试图只与一台pact服务器创建多个交互,但当我运行代码时,我得到以下错误:错误:尝试在javascript中实现多个交互时多次调用done(),javascript,node.js,mocha.js,pact,Javascript,Node.js,Mocha.js,Pact,我试图只与一台pact服务器创建多个交互,但当我运行代码时,我得到以下错误:error:done(),多次调用。必须能够仅使用一台pact服务器创建多个交互,但我不知道如何创建。我已经阅读了本文档,其中说明了仅使用一台服务器就可以创建多个交互 您只需在完成任务后调用done。因此,您可以一个接一个地运行调用,如下所示: provider.addInteraction(interaction1) .then(() => provider.addInteraction(interact
error:done(),多次调用。必须能够仅使用一台pact服务器创建多个交互,但我不知道如何创建。我已经阅读了本文档,其中说明了仅使用一台服务器就可以创建多个交互
您只需在完成任务后调用done
。因此,您可以一个接一个地运行调用,如下所示:
provider.addInteraction(interaction1)
.then(() => provider.addInteraction(interaction2));
.then(() => done());
或者您可以使用Promise.all
同时运行它们,并等待两者完成:
Promise.all([provider.addInteraction(interaction1), provider.addInteraction(interaction2)])
.then(() => done());
您只需在完成任务后调用done
。因此,您可以一个接一个地运行调用,如下所示:
provider.addInteraction(interaction1)
.then(() => provider.addInteraction(interaction2));
.then(() => done());
或者您可以使用Promise.all
同时运行它们,并等待两者完成:
Promise.all([provider.addInteraction(interaction1), provider.addInteraction(interaction2)])
.then(() => done());
这是正确的答案。由于承诺的作用,您两次调用done
。在使用承诺时,您也根本不需要使用done
,因为您可以直接返回承诺,这里有一个更好的方法,将承诺链接在一起:在(()=>provider.setup()之前,然后(()=>provider.addInteraction(interaction1)),然后(()=>provider.addInteraction(interaction2))代码>这是正确答案。由于承诺的作用,您两次调用done
。在使用承诺时,您也根本不需要使用done
,因为您可以直接返回承诺,这里有一个更好的方法,将承诺链接在一起:在(()=>provider.setup()之前,然后(()=>provider.addInteraction(interaction1)),然后(()=>provider.addInteraction(interaction2))代码>