我正在使用 nock 模块来拦截对我的 API 服务的 HTTP 调用(仍未开发)并返回一些我在临时数据库中拥有的模拟数据。
我注意到 http 请求被正确拦截,但我看到的问题是,在我的函数从 temp DB 获取所需数据之前,nock 会回复。
对于一个简单的演示,看下面的代码:
var nock = require('nock');
var nockReq = nock("http://localhost:8000")
.post("/sample-endpoint")
.reply(200, function (uri, requestBody) {
setTimeout(function() {
return {"result": "TIMED OUT"}
}, 2000
);
使用上面的代码,当我不使用超时时,我可以按预期正确返回数据。但是由于这个超时,nock 似乎并没有等待回调,而是继续响应一个空的 200 响应。