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);
})
})
}
答案 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
测试以下网址,