Javascript 如何通过库请求通过HTTP POST请求获取响应体
我通过库请求发出HTTP POST请求,但无法获得响应体 在控制台日志中,我看到了正确的答案,但函数getBlock会重新运行0 我的控制台日志:Javascript 如何通过库请求通过HTTP POST请求获取响应体,javascript,node.js,request,Javascript,Node.js,Request,我通过库请求发出HTTP POST请求,但无法获得响应体 在控制台日志中,我看到了正确的答案,但函数getBlock会重新运行0 我的控制台日志: Block num: 0 617635 问题是您的请求呼叫。这是回调风格。这意味着将首先执行return blockcount,blockcount=body.result;将在asyn调用完成时执行。你有两个选择 将回调样式转换为promise并在变量中获取结果。 或者在回调中返回响应。 wait this.request不起作用,因为reque
Block num: 0
617635
问题是您的请求呼叫。这是回调风格。这意味着将首先执行return blockcount,blockcount=body.result;将在asyn调用完成时执行。你有两个选择
将回调样式转换为promise并在变量中获取结果。
或者在回调中返回响应。
wait this.request不起作用,因为request不返回承诺,所以wait没有任何用处
相反,使用request-promise模块并去掉回调
或者,由于请求处于维护模式,并且不再获得新功能,因此切换到已经与承诺一起工作的got模块
const rp = require('request-promise');
private async getBlock() {
let blockcount: Number = 0;
var options = {
body: { jsonrpc: '2.0', method: 'getblockcount', params: [] },
...this.options
};
let body = await rp(options);
console.log(body.result);
blockcount = body.result;
return blockcount;
}
编辑2020年1月-维护模式下的请求模块
仅供参考,请求模块及其衍生产品(如)目前处于维护模式,不会积极开发以添加新功能。你可以阅读更多关于推理的内容。中有一个备选方案列表,并对每个备选方案进行了讨论。我一直在使用我自己,它从一开始就使用承诺,使用起来很简单。等待这个。请求不起作用,因为请求不返回承诺。相反,使用request-promise模块并去掉回调。或者,由于请求处于维护模式,并且不再获得新功能,请切换到已经与承诺一起工作的got模块。谢谢-它工作正常-只需使用请求即可-promise@jfriend00我写了一封回信,请回答你的要求。
const rp = require('request-promise');
private async getBlock() {
let blockcount: Number = 0;
var options = {
body: { jsonrpc: '2.0', method: 'getblockcount', params: [] },
...this.options
};
let body = await rp(options);
console.log(body.result);
blockcount = body.result;
return blockcount;
}