从另一个请求中的一个请求获取解决的价值

时间:2020-10-23 07:20:22

标签: javascript node.js

我有一个对函数执行请求的promise函数。根据该请求的响应,有以下两种情况:

Library.prototype.method = function () {

return new Promise ( ( resolve, reject )=> {

request( options, function ( error, response, body ) {

   if ( scenario 1 ) {
   
      //do something that changes value from options and need to perform a new request

      request( options, function ( error, response, body ) {

         if ( response ) { resolve( true ) }

      })
   
   } 

   if ( scenario 2 ) {
   
      resolve( true )

   }


    }) 

  })

}

这里的情况是在对包含那些请求的promise的函数调用中,我没有获得嵌套请求resolve的值。

library.method().then( ( response )=> {
  
  // scenario 2
  console.log( response ) // true
  // scenario 1
  console.log( response ) // never triggered

} )

如果函数promise在方案2中结束-> promise返回true

如果功能承诺在方案1中结束->我没有收到任何响应

如何从内部请求中获取解析值?

1 个答案:

答案 0 :(得分:0)

您的代码对我来说似乎很好,但是1)您应该查看 response.statusCode ,然后 2)错误时您应该拒绝 ...

return new Promise((resolve, reject)=>{
        request(url, function (error, response, body) {
          if (!error && response.statusCode == 200) {
            resolve(....);
          } else {
            reject(......);
          }
        });
      });