Node.js 再思考DB&;nodejs:将结果保存在var中
是否可以将数据库的查询结果保存在变量中 像这样Node.js 再思考DB&;nodejs:将结果保存在var中,node.js,rethinkdb,Node.js,Rethinkdb,是否可以将数据库的查询结果保存在变量中 像这样 var test = r.db('chat').table('group_chat').count(r.row('passengers').contains(function(passeggers) { return passeggers('nome').eq('pigi'); })).run() 现在我用这个方法 var test; r.db('chat').table('group_chat').count(r.row('passe
var test = r.db('chat').table('group_chat').count(r.row('passengers').contains(function(passeggers) {
return passeggers('nome').eq('pigi');
})).run()
现在我用这个方法
var test;
r.db('chat').table('group_chat').count(r.row('passengers').contains(function(passeggers) {
return passeggers('nome').eq('pigi');
})).run().then(function(response){
test = response;
})
如果您不喜欢使用承诺,并且正在使用最新版本的ECMAScript,那么可以使用,它提供了语法糖,让您可以像编写同步代码一样编写异步代码 您可以这样重写您的示例:
async function getTest() {
var test = await r.db('chat').table('group_chat').count(r.row('passengers').contains(function(passeggers) {
return passeggers('nome').eq('pigi');
})).run();
return test;
}
请注意,“在幕后”,这仍然使用承诺,但它使代码更易于阅读和理解。如果您不喜欢使用承诺,并且正在使用最新版本的ECMAScript,您可以使用,它提供了语法糖,让您可以像编写同步代码一样编写异步代码 您可以这样重写您的示例:
async function getTest() {
var test = await r.db('chat').table('group_chat').count(r.row('passengers').contains(function(passeggers) {
return passeggers('nome').eq('pigi');
})).run();
return test;
}
请注意,“在幕后”,这仍然使用承诺,但它使代码更易于阅读和理解。最简单但有效的解决方案如下,使用回调
function getTest(callback) { // add callback
r.db('chat')
.table('group_chat')
.count(r.row('passengers')) // you forgot closing brace here
.contains(function(passeggers) {
return passeggers('nome').eq('pigi')
})
.run()
.then(function(result) {
callback(null, result); // call callback with result
})
.error(function(err) {
callback(err, null); // call callback with error
});
}
getTest(function(err, result) { // invoke callback
if (err) throw err;
console.log(result)
var test = result; // note: you can use test variable only inside this call
})
最简单但有效的解决方案如下,使用回调
function getTest(callback) { // add callback
r.db('chat')
.table('group_chat')
.count(r.row('passengers')) // you forgot closing brace here
.contains(function(passeggers) {
return passeggers('nome').eq('pigi')
})
.run()
.then(function(result) {
callback(null, result); // call callback with result
})
.error(function(err) {
callback(err, null); // call callback with error
});
}
getTest(function(err, result) { // invoke callback
if (err) throw err;
console.log(result)
var test = result; // note: you can use test variable only inside this call
})