2014-09-05 17 views
0

我正在使用nock模塊攔截對我的API服務(仍未開發)的HTTP調用,並返回一些臨時數據庫中的模擬數據。Node.js - 模塊:nock - .reply回調不起作用

我注意到http請求被截獲正確,但我看到的問題是,在我的函數從臨時數據庫獲取所需數據之前,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響應。

+1

這個問題不是關於在異步函數上使用回調。這個問題對於nock模塊中的回覆方法非常具體。 – Ananth 2014-09-05 15:50:41

+0

似乎不可能這樣做與nock顯然 – Natim 2015-03-13 16:15:00

+0

相關:http://stackoverflow.com/questions/25684307/node-js-module-nock-reply-with-a-callback-doesnt-work – Natim 2015-03-13 16:42:31

回答

-1

您只需將setTimeOut中的函數放入下一個沒有返回的刻度中即可。 嘗試在setTimeOut之前添加返回。