2017-01-26 7 views
0

レート:sayHello()が機能するように、以下のコードを変更する必要がありますか? レートを呼び出すと:testFunction()は動作し、console.log(res); sayHelloも同様に動作します。ありがとう。Node.js返信res

exports.getRates = (req, res) => { 
     res.render('riscalc/rates', { 
     title: 'Riscalc', 
     rates: sayHello() 

     }); 
    }; 

    function testFunction() { 
     return 23; 
    } 


    function sayHello() { 
     client.invoke('s_hello', 'hello', (error, res, more) => { 
     if (error) { 
      console.error(error); 
     } else { 
       // console.log(res); 
      return res; 
     } 
     if (!more) { 
      console.log('Done.'); 
     } 
     }); 
    } 

答えて

-1

コードで何を達成しようとしているのかよく分かりません。しかし、client.invokesayHello機能にコールバック 『関数をのコールバックは、その後使用して、一度だけ呼ばれる』、次のコードは動作するはずと仮定:

exports.getRates = (req, res) => { 

    sayHello(function (err, val) { 
     res.render('riscalc/rates', { 
      title: 'Riscalc', 
      rates: val 
     }); 
    }); 

}; 

function testFunction() { 
    return 23; 
} 


function sayHello(callback) { 
    client.invoke('s_hello', 'hello', (error, res, more) => { 
     if (error) { 
      callback(error); 
     } else { 
      // console.log(res); 
      callback(null, res) 
     } 
     if (!more) { 
      console.log('Done.'); 
     } 
    }); 
} 
+0

素晴らしい作品。ありがとう。私はコールバック関数に悩まされていました。 client.invoke is zerorpc呼び出しです。 const zerorpc = require( 'zerorpc'); const client = new zerorpc.Client(); client.connect( 'tcp://127.0.0.1:4242'); – user2122935

+0

ダウンボートは何でしたか? –

+0

申し訳ありませんが誤ってクリックします。 – user2122935

関連する問題