我正在制作电报机器人。我无法将API与电报机器人连接
const request = require('request');
request('http://127.0.0.1/api/product/read.php', function (error, response, body) {
if (!error && response.statusCode == 200) {
const h = JSON.parse(body);
const t = h.title || '';
hasil = h.records;
console.log(hasil);
console.log(h);
// // console.log(t);
}
});
console.log('asd' + hasil);
console.log(h);
我想从请求API获得结果,该请求API是数据库中的行。但是我无法在request函数之外得到结果。
我实际上想在电报bot中进行输出。因为电报bot功能不能在request函数内部使用。
所以我正在考虑从请求中获取结果。但是我无法获得比函数更好的结果。
console.log(hasil); // the output is here
console.log('asd'+hasil); // but this is nothing.
请帮助我。预先感谢。
答案 0 :(得分:-1)
您需要的是全局变量和await语句,以使异步过程同步。
let hasil = undefined; //Global variable that you can access anywhere.
const request = require('request');
await request('http://127.0.0.1/api/product/read.php', function (error, response, body) {
if (!error && response.statusCode == 200) {
const h = JSON.parse(body);
const t = h.title || '';
hasil = h.records;
console.log(hasil);
console.log(h);
// // console.log(t);
}
});
console.log('asd' + hasil);
console.log(h);
但是,我会警告您,全局变量通常不被接受。
原因如下:Channel
了解全局变量的有用链接:http://wiki.c2.com/?GlobalVariablesAreBad
有用的链接来了解等待和异步:https://stackabuse.com/using-global-variables-in-node-js/