2017-08-26 9 views
1

rethinkdbの結果クエリを変数に保存できますか?rethinkdb&nodejs:結果をvarに保存

このように??

var test = r.db('chat').table('group_chat').count(r.row('passengers').contains(function(passeggers) { 
    return passeggers('nome').eq('pigi'); 
})).run() 

今私はあなたを書くようにするシンタックスシュガーを提供し、あなたが約束を使用して好きではないとのECMAScriptの最新バージョンを使用している場合は、async/awaitを使用することができます

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; 
}) 

答えて

0

この方法を使用しますあたかも同期しているかのように非同期コードを生成する。

あなたはこのようなあなたの例を書き換えることができます:「舞台裏」、これはまだ約束を使用していますが、それは読んで理解するためのコードが簡単になりますことを

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; 
} 

注意。

0

最も簡単なまだ作業溶液は、コールバック

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 
}) 
を使用して、として怒鳴るだろう
関連する問題