如何解决'它想在var中设置一个值,但是得到一个Promise { }'
(对不起我的英语,但是我正在学习:D)
[大家好,我是node和js的初学者,我想在我的数据库类上创建一个'getPendingKYC'函数,但是当我执行该函数时,我总是收到Promise {},但是我想接收直接查询的结果而无需使用.then在我的变量上管理承诺...我只想在调用函数时在类外的var上获取函数结果的值。
//
//这是脚本页面
const { Client } = require('pg');
class Db {
constructor() {
this.client = this.dbConnect();
}
dbConnect() {
return new Client({
user: 'xxxxxxxxxxx',
host: 'xxxxxxxxxxx',
database: 'xxxxxxxxxxx',
password: 'xxxxxxxxxxx',
port: 'xxxxxxxxxxx'
});
}
async getPendingKyc() {
this.client.connect();
let data = await this.client.query('SELECT * FROM users')
this.client.end();
return data.rowCount;
};
};
const db = new Db();
let data = db.getPendingKyc();
console.log(data);
如果我在db.getPendingKyc()之前放置“ await”,则会收到下一个错误:
让数据=等待db.getPendingKyc();^^^^^
SyntaxError:等待仅在异步功能中有效
如果我将.then放在db.getPendingKyc()之后,我可以正确显示该值,但是我希望将其放在不执行此操作的var中。
¿我如何做才能直接在var上获得与他一起工作的价值,而无需在课堂上处理承诺?
回答如下:当没有异步功能时,您可以做...
const db = new Db();
db.getPendingKyc().then(function(data) {
console.log(data);
}