0

node request is not waiting for response it is asynchronous how to make it synchronous.

 const req = http.request(options, (res) => {
     console.log(`statusCode: ${res.statusCode}`)

        res.on('data', (d) => {
            process.stdout.write(d)

        })
    })

    req.on('error', (error) => {

    })

    req.write(data)
    req.end()
    })

    }
Reez0
  • 2,512
  • 2
  • 17
  • 39
Yuvraj Chavan
  • 55
  • 1
  • 6

1 Answers1

1
You should use promises.

function callApi() {
  return new Promise((resolve, reject) => {
    const req = http.request(options, (res) => {
      console.log(`statusCode: ${res.statusCode}`)

      res.on('data', (d) => {
        process.stdout.write(d)
        resolve(JSON.parse(d))
      })
    })

    req.on('error', (error) => {
      reject(error)
    })

    req.write(data);
    req.end();
  })
}

function test() {
  var request = callApi();
  request.then(function result(result) {
    console.log(result)
  }, function error(err) {
    console.log(error)
  })
}

test(); 
Zunnurain Badar
  • 920
  • 2
  • 7
  • 28
vivekdubey
  • 484
  • 2
  • 7