Транспортир не дожидается обратного вызова https.request - PullRequest
1 голос
/ 30 марта 2020

Я сталкиваюсь с проблемой Protractor, если я запускаю ее в рамках "ts-node demo. js", она работает хорошо и может выводить код ответа и тело ответа.

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

В этой ситуации, как я могу вывести код ответа и бодей?

it (Check manifests V2 api, asyn c () => {

    const https = require('https')
    const options = {
      hostname: 'demo-quayecosystem-quay-quay.com',
      port: 443,
      path: '/v2/quay/multiarchdemo/manifests/latest',
      method: 'GET',
      headers: {
        'Accept': 'application/vnd.docker.distribution.manifest.list.v2+json'
      }
    }

    https.request(options, res => {
      browser.getTitle().then(()=>{
        console.log("starting.........");
        console.log(`statusCode: ${res.statusCode}`)

        res.on('data', d => {
          process.stdout.write(d)
        })

      })
    })       

})

1 Ответ

0 голосов
/ 30 марта 2020

Вышеприведенная функция является асинхронной c, и когда вы делаете свою функцию асинхронной c, вам следует использовать ключевое слово await перед https.request или возвращать его следующим образом.

return https.request...

И еще одна вещь, которая может привести к проблемам: ...

https.request делает прямой HTTP-запрос без использования браузера. Broser.getTitle () использует браузер для взаимодействия с веб-страницей.

Имейте в виду - браузер использует браузер, а http.request использует прямой HTTP из node.js - это две разные вещи. И это приведет к непредсказуемым вещам, чтобы смешать их. Так что подумайте, хотите ли вы «проверить как пользователь», а затем использовать браузер, или если вы хотите сделать максимально быстрый тест и «проверить как веб-сайт или javascript» и использовать HTTP.request.

Попробуйте прочитать страницу async / await на веб-сайте Protractor. https://www.protractortest.org/# / asyn c -await

Если вы озадачены асинхронностью / ожиданием, рассмотрите видео из Fun Fun Function по обещаниям https://www.youtube.com/watch?v=568g8hxJJp4&t=251s.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...