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上进行测试


在前面的答案的基础上,这里有一个承诺框架,可以处理解决(响应,但不一定是200)和拒绝(无响应)。包执行此操作,但隐藏了详细信息。我更喜欢这个,因为它能让我更好地控制逻辑

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上进行测试


您的代码永远不会解决或拒绝您的承诺。承诺仅仅是通知系统。它们不会自动检测任何异步操作。您的代码必须告诉他们何时解决或拒绝。您也没有错误处理,因此如果出现错误,您不会报告它与周围的承诺无关。这只是一个简单的回调。如果您的代码试图使用返回的承诺,那么该承诺将永远不会像前面解释的那样得到解析。您的代码永远不会解析或拒绝您的承诺。承诺仅仅是通知系统。它们不会自动检测任何异步操作。您的代码必须告诉他们何时解决或拒绝。您也没有错误处理,因此如果出现错误,您不会报告它与周围的承诺无关。这只是一个简单的回调。如果您的代码试图使用返回的承诺,那么该承诺将永远不会像前面解释的那样得到解决。