Javascript NodeJs中的HTTP请求-需要了解流的帮助吗

Javascript NodeJs中的HTTP请求-需要了解流的帮助吗,javascript,node.js,Javascript,Node.js,我是nodejs/javascript的新手,正在努力找到实现我想要的东西的方法 我希望程序在执行第70行(最后第二行)的代码之前等待https请求。我怎样才能做到这一点?当前,代码从第71行开始执行,而http请求的结果稍后到达。我想在以后的代码中使用变量total的值 以下是文本中的代码: // Step 1 - Get total from firebase with the above details - Make a POST request to firebase var p

我是nodejs/javascript的新手,正在努力找到实现我想要的东西的方法

我希望程序在执行第70行(最后第二行)的代码之前等待https请求。我怎样才能做到这一点?当前,代码从第71行开始执行,而http请求的结果稍后到达。我想在以后的代码中使用变量total的值

以下是文本中的代码:

// Step 1 - Get total from firebase with the above details - Make a POST request to firebase
    var postData = querystring.stringify({
      order_id: orderUID,
      res_key: res_key
    })
    const options = {
      hostname: process.env.HOST,
      port: 443,
      timeout: 5000,
      path: process.env.CLOUD_GETTOTAL,
      method: 'POST',
      headers: {
        'Content-Type': 'application/x-www-form-urlencoded',
        'Content-Length': postData.length
      }
    }
    const request = https.request(options, resCFS => {
      resCFS.on('data', d => {
//        if (resCFS.status==200) {
          total = Number(d)
          console.log('Total: '+total) // I WANT VALUE OF THIS FIRST
//      }
      })
    })
    request.on('error', error => { //C4 Server error or Comms Error
      console.error(`Error: ${error}`)
      //res.sendStatus(500) // Send status to the app
      //return
    })
    request.write(postData)
    request.end() ///// LINE 70
    console.log('Total End: '+total) // THIS EXECUTES FIRST

请指出文本代码中哪一行是第71行,而不是一张图片(有些人看不懂)。您正在尝试将
wait
与不返回承诺的函数一起使用。因此,那些等待的代码行是无用的。此外,您使用的是普通异步回调,而不是在这些回调中处理结果。您需要回到绘图板,了解如何在nodejs中编写异步代码,或者按照文档进行操作,或者从stackoverflow上的数千个这样的示例中学习。@jfriend00不在回调中处理结果是什么意思。。。在…上('data'…是一个回调,我试图在那里获取值?发生了什么错误?这段代码的意义是什么?您似乎试图获取一些
total
值,但没有对其进行任何处理。请显示或描述您真正试图做的事情。是的,最后的三行在异步ca之前执行llback之所以会这样做,是因为Javascript中的非阻塞异步操作就是这样工作的。如果您希望在得到结果后执行这些操作,那么将它们放在异步回调中,而不是放在函数的末尾。仅供参考,使用基于承诺的http请求库,例如。
https.request()
的级别相当低,需要更多的代码才能正确处理所有内容。