Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
错误:尝试在javascript中实现多个交互时多次调用done()_Javascript_Node.js_Mocha.js_Pact - Fatal编程技术网

错误:尝试在javascript中实现多个交互时多次调用done()

错误:尝试在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

我试图只与一台pact服务器创建多个交互,但当我运行代码时,我得到以下错误:
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))