保证不会为我工作http.get

时间:2018-08-11 17:14:02

标签: javascript node.js http promise

  • 我正在答应我的要求。
  • 但他的价值不在我的控制台中。
  • 你能告诉我什么问题吗?
  • 在下面提供我的代码
const https = require('https');
/*
 * Complete the function below.
 * Use console.log to print the result, you should not return from the function.
 */
function getMovieTitles(substr) {
    return new Promise((resolve,reject) => {
        https.get('https://jsonmock.hackerrank.com/api/movies/search/?Title=spiderman&page=1', (res) =>{
           // var {statusCode} = res;
            //var contentType = res.headers['content-type'];

            console.log('res---->', res);
        })
    })


}

2 个答案:

答案 0 :(得分:3)

您在这里,

   new Promise(function(resolve, reject) {
      https.get('your_url_here', (res) =>{
            // var {statusCode} = res;
            // var contentType = res.headers['content-type'];

            resolve(res);
        })
    }).then(function(res){
        console.log("Response",res);
    })

要测试,请遵循-https://jsfiddle.net/qdjkreo5/3741/

替代品:

您可以处理HTTPS模块在其回调本身中返回的数据,因为https也会返回回调。

const https = require('https');

https.get('https://encrypted.google.com/', (res) => {
  console.log('response', res);

}).on('error', (e) => {
  console.error(e);
});

除此之外,要将REST API调用与node.js中的JavaScript Promises结合使用,可以使用npm模块request-promise

var request = require('request-promise');

request({
  "method":"GET", 
  "uri": "https://api.github.com/",
  "json": true,
  "headers": {
    "User-Agent": "My little demo app"
  }
}).then(console.log, console.log);

答案 1 :(得分:0)

基于先前的答案,这是一个Promise框架,可处理解决(响应,但不一定是200)和拒绝(无响应)。 axios软件包会执行此操作,但是会隐藏详细信息。我更喜欢这种方式,因为它使我可以更好地控制逻辑。

Access token

测试以下网址,