变量优先级(节点 js 中的全局?


"use strict";
var Tabletop = require("tabletop");
var base64 = require('base-64');

Tabletop.init( { key: 'xxxxxg46hgfjd',
                   callback: showInfo,
                   simpleSheet: true } )
function showInfo(data, tabletop) {
       console.log(data);
       console.log(base64.encode(data));
}
var vGlobals = {
    dataString: base64.encode(data)
};
module.exports = vGlobals;

如何从 showInfo访问要在 vGlobal 中使用的数据变量?它说它还没有被定义。

你的方法是错误的,你不能这样做,因为 TableTop 异步调用你的回调。

我的建议(一个快速的建议):

   var dataString = null;
   module.exports = function(cb) {
       if (dataString == null)
           Tabletop.init({
               key: 'xxxxxg46hgfjd',
               callback: function(data, tabletop) {
                   dataString = base64.encode(data);
                   cb(dataString);
               },
               simpleSheet: true
           });
       else cb(dataString);
   };

并获取数据:

var dataManager = require('./myfile');
dataManager(function(dataString) {
  //here is your data do what you want with it
})

您应该查看/了解有关node/javascript和异步/事件驱动编程的更多信息。

最新更新