使用asynchronousNPM模块

所以…我最近遇到这个节点模块: asynchronous 。 我只需要针对下面的情况进行一点“展示和说明”或最佳实践方法。 下面你可以看到我的函数GetBearerToken ,它带有一个参数{bearer_token:token}没有问题。

我的问题是variablesss 。 我想在这个函数之外使用它,并把它传递给另一个函数来做一些事情。 当然,当我尝试访问ss ,它是不确定的。 我已经尝试了一些文档中指出的工作方式,但我显然错过了一些东西。 所以任何帮助将是伟大的…谢谢

 GetBearerToken({ bearer_token: token }, function(error, result) { if (error) throw error; if (result) { var resultset var i; for (i = 0; i < result.length; i++) { resultset = (simpleObjectify(result[i].meta, result[i].rows)) } var jstring = JSON.stringify(resultset); var obj = JSON.parse(jstring); var ss = obj[0].uuid; console.log(ss) }) 

函数ssundefined

首先阅读这个

JavaScript中variables的范围是什么?


你可以尝试使用.waterfall方法

瀑布(任务,[callback])

按顺序运行函数的任务数组,每个函数将结果传递给数组中的下一个。 但是,如果任何任务将错误传递给自己的callback,则不执行下一个函数,并立即调用主callback并返回错误。

你正在努力完成的一个例子

 async.waterfall([ function(callback) { GetBearerToken({ bearer_token: token }, function(error, result) { if (error) throw error; if (result) { // *note* don't forget to handle the result properly if an error occurs or the result is not what you expected. var resultset var i; for (i = 0; i < result.length; i++) { resultset = (simpleObjectify(result[i].meta, result[i].rows)) } var jstring = JSON.stringify(resultset); var obj = JSON.parse(jstring); var ss = obj[0].uuid; callback(null, ss); // call the next callback in waterfall with ss value } ) }, function(arg1, callback) { // arg1 now equals ss value callback(null,'all completed'); } ], function(err, result) { // result now equals 'all completed' }); 

但是由于上面的代码在debugging时似乎已经朝着错误的方向迈进了一步。 但是看一下.waterfall例子,它分解了callback,然后调用.waterfall方法。