0

nock モジュールを使用して API サービス (ま​​だ未開発) への HTTP 呼び出しをインターセプトし、一時データベースにあるモック データを返します。

http 要求が適切にインターセプトされていることに気付きましたが、問題は、関数が一時 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 応答を返します。

4

1 に答える 1

-1

setTimeOut の関数を次のティックに配置するだけで、何も返されません。setTimeOut の前に return を追加してみてください。

于 2014-09-05T10:59:34.250 に答える