2015-07-01 6 views
0

Я пытаюсь сделать вызов API REST, как показано ниже, и как только вызов будет завершен, я хочу напечатать «Готово». Но приведенный ниже пример «Готово» печатается еще до завершения вызова REST.Внутренняя тестовая среда - вызов REST API

 return this.remote 
      .then(function() { 
       request('http://www.google.com', function (error, response, body) { 
         if (!error && response.statusCode == 200) { 
         console.log(body) // Show the HTML for the Google homepage. 
         } 
        }) 
      }) 
      .then(function() { 
       console.log("Done") 
      }) 

Я пропустил что-то здесь? Если это не правильный путь, может кто-то, пожалуйста, сообщите мне, что это за правильный путь.

Спасибо.

ответ

0

Для Leadfoot (библиотека, которую Intern использует для проведения функциональных тестов) для отслеживания асинхронной операции, асинхронные операции в then обратные вызовы должны возвращать Promises (или thenables). К счастью, request возвращает обещание, поэтому просто выполните:

.then(function() { 
    return request('...', function (...) { 
     ... 
    }); 
}) 
Смежные вопросы