Javascript 答应我不要为我工作http.get 我用承诺来得到我的回应 但他并没有出现在我的控制台上 你能告诉我有什么问题吗 在下面提供我的代码 consthttps=require('https'); /* *完成下面的功能。 *使用console.log打印结果,不应从函数返回。 */ 函数getMovieTitles(substr){ 返回新承诺((解决、拒绝)=>{ https.get('https://jsonmock.hackerrank.com/api/movies/search/?Title=spiderman&page=1“,(res)=>{ //var{statusCode}=res; //var contentType=res.headers['content-type']; log('res-->',res); }) }) }
给你Javascript 答应我不要为我工作http.get 我用承诺来得到我的回应 但他并没有出现在我的控制台上 你能告诉我有什么问题吗 在下面提供我的代码 consthttps=require('https'); /* *完成下面的功能。 *使用console.log打印结果,不应从函数返回。 */ 函数getMovieTitles(substr){ 返回新承诺((解决、拒绝)=>{ https.get('https://jsonmock.hackerrank.com/api/movies/search/?Title=spiderman&page=1“,(res)=>{ //var{statusCode}=res; //var contentType=res.headers['content-type']; log('res-->',res); }) }) },javascript,node.js,http,promise,Javascript,Node.js,Http,Promise,给你 new Promise(function(resolve, reject) { https.get('your_url_here', (res) =>{ // var {statusCode} = res; // var contentType = res.headers['content-type']; resolve(res); }) }).then(functio
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模块的回调本身中处理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承诺结合起来,您可以使用npm模块请求承诺
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);
给你
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模块的回调本身中处理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承诺结合起来,您可以使用npm模块请求承诺
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);
在前面的答案的基础上,这里有一个promise框架,可以处理resolve(响应,但不一定是200)和reject(无响应)。包执行此操作,但隐藏了详细信息。我更喜欢这个,因为它能让我更好地控制逻辑
const p1 = new Promise((resolve, reject) => {
https.get(url, (res) => {
let {statusCode} = res;
let contentType = res.headers['content-type'];
resolve(`status=${statusCode} type=${contentType}`); // response, so resolve
}).on('error', (err) => {
reject(err); // no response, so reject
});
});
p1.then(res => console.log(`${url}: ${res}`)) // resolve
.catch(err => console.log(err)) // reject
.finally(console.log('Finally')); // always
在以下URL上进行测试
const p1 = new Promise((resolve, reject) => {
https.get(url, (res) => {
let {statusCode} = res;
let contentType = res.headers['content-type'];
resolve(`status=${statusCode} type=${contentType}`); // response, so resolve
}).on('error', (err) => {
reject(err); // no response, so reject
});
});
p1.then(res => console.log(`${url}: ${res}`)) // resolve
.catch(err => console.log(err)) // reject
.finally(console.log('Finally')); // always
在以下URL上进行测试