Node.js返回res

时间:2017-01-26 10:44:17

标签: javascript node.js

我如何修改下面的代码,以便率:sayHello()有效? 如果我调用rate:testFunction()它可以工作,console.log(res);在sayHello也是如此。感谢。

    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 个答案:

答案 0 :(得分:-1)

不确定您要使用代码实现什么目标。但是,假设client.invoke的回调只被调用一次,那么使用'回调'在sayHello函数中的函数,以下代码应该起作用:

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