从Node.js回调中获取值

时间:2017-10-24 08:40:16

标签: node.js callback

我正试图了解Node.JS中的回调,与我以前相比,这是非常陌生的。

我在这里的另一篇文章中有以下示例:

var someOutput;

var myCallback = function(data) {
  console.log('got data: '+data);
  someOutput = data;
};


    var usingItNow = function(callback) {
  callback('get it?');
};

//now do something with someOutput outside of the functions

我添加了someOutput变量 - 我想获取文本'get it?' (显然我没有)进入那里,以便我可以将它连接到一个字符串,但它不能以我尝试的任何组合工作。

我必须遗漏一些基本的东西!

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

你应该调用函数:

usingItNow(myCallback);

但无论如何,使用回调来设置变量并在以后使用它并不是一个好习惯。它现在适用于你,但是如果回调将是异步的,它将会失败。

考虑使用Promise并在someOutput函数中使用then。 一个好的Promise包是Bluebird

如果你想像专业人士那样做,请考虑使用Promise.coroutine http://bluebirdjs.com/docs/api/promise.coroutine.html

如果您使用的是Node.js的更新版本,请async + await

查看http://node.green/#ES2017-features-async-functions以查看节点版本上的可用内容

答案 1 :(得分:0)

由埃米尔评论:

“调用usingItNow(myCallback);”

卫生署!