await this.request()
не работает, потому что request()
не возвращает обещание, поэтому await
не делает ничего полезного.
Вместо этого используйте модуль request-promise
и избавьтесь от обратного вызова.
Или, поскольку request()
находится в режиме обслуживания и больше не получает новые функции, переключитесь на модуль 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;
}
EDIT январь 2020 г. - модуль request () в режиме обслуживания
К вашему сведению, модуль request
и его производные, такие как request-promise
, теперь находятся в режиме обслуживания и не будут активно развиваться, чтобы добавлять новые функции. Вы можете прочитать больше о рассуждениях здесь . В этой таблице приведен список альтернатив с некоторым обсуждением каждого из них. Я сам использовал got()
, и он с самого начала создан для использования обещаний и прост в использовании.