我想在编写函数时运行我的函数,但是我们知道node.js是异步语言,所以以异步方式运行的代码在这里,我的问题始于我的代码,我想执行每一行代码按照他们写的顺序。
现在我的问题是如何在Node.js中顺序运行一个函数。
这是我在其中调用函数的index.js文件的代码
var request = require('request');
var requestHandling = require('../routes/request_handling_functions');
router.get("/example1", function (req, res) {
var result =
requestHandling.requestMethodGet('http://localhost:8083/getUserInfo/865c2c25-d9e7-412d-a064-326bd66c9e9c', res);
console.log("===RESULT=====");
console.log(result);
});
在上面的代码中,我想先调用requestMethodGet函数,然后再调用该函数的结果。但是整个事情出错了,它首先执行console.log行,然后调用该函数。
我在控制台中的输出是
===RESULT=====
undefined
这是我在其中定义该功能的文件
var request = require('request'); var log = require('log4js')。getLogger(“ index”);
module.exports = {
requestMethodGet: async function (url, res) {
//SET ALL THESE PARATMETER TO MAKE REQUEST
request.get({url: url}, function (e, r, body) {
var errorResult = module.exports.validateResponseeData(e);
console.log("====errorResult===in===Get==method====");
console.log(errorResult);
if (errorResult != "continue") {
console.log("===im in not continue");
res.send(errorResult);
} else {
//LOGING THE RESPONSE BODY
log.info('body:', body);
var responseData = JSON.parse(body);
console.log("======AUTHTOKEN=========DATA=====================");
console.log('error:', e);
console.log('statusCode:', r && r.statusCode);
console.log('body:', body);
console.log("====================================");
console.log(responseData);
res.send(responseData);
}
});
}
如果需要有关此问题的帮助或需要更多信息,请通知我。
答案 0 :(得分:-5)
您可以将异步函数创建为Promise函数,然后使用async await并尝试catch方法javascript来依次访问它。
您可以查看此信息以获得更好的信息 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise