2014-09-05 13 views
0

Я использую модуль nock для перехвата HTTP-вызовов к моей службе API (еще не разработанной) и возвращать некоторые макеты данных, которые у меня есть во временной базе данных ,Node.js - module: nock - .reply с обратным вызовом не работает

Я заметил, что HTTP-запросы перехватываются должным образом, но проблема, которую я вижу, заключается в том, что до того, как моя функция получит требуемые данные из временной базы данных, ответ на нок.

Для простой демонстрации, посмотрите на код ниже:

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 
    ); 

С выше кода, когда я не использую тайм-аут, я получаю возвращенные данные должным образом, как и ожидалось. Но с этим тайм-аутом нок, похоже, не ждет обратного вызова, вместо этого продолжит отвечать на пустой ответ 200.

+1

Этот вопрос не связан с использованием обратных вызовов для асинхронных функций. Эта проблема очень специфична для метода ответа в модуле nock. – Ananth

+0

Не представляется возможным сделать это с помощью носки, видимо, – Natim

+0

http://www.stackoverflow.com/questions/25684307/node-js-module-nock-reply-with-a-callback-doesnt-work – Natim

ответ

-1

Вы просто положили функцию в setTimeOut на следующий тик, ничего не вернувшись. Попробуйте добавить return before setTimeOut.