要求所需功能之间的范围

时间:2016-04-12 17:37:43

标签: node.js

我正在尝试从导出的​​js文件中访问函数。 所以在我的主app.js文件之上,我需要这样的文件:

var api = require("./plugins/apis.js”);

我可以调用此文件中的函数,但不能调用其他var中的函数 函数,即使我发送api作为参数,如

/**
 * @param access_token your access token from your instance settings page
 * @param [options] json object to be passed to the external web service. Can include any of 'context', 'verbose', 'n'
 * @param callback callback that takes 2 arguments err and the response body
 */


var getData = function (access_token, options, callback) {
   if(!callback) {
        callback = options;
        options = undefined;
    }
// do stuff
}

function init(api) {
    var information = getData(ACCESS_TOKEN, function (err, res) {
        init(api)
        // do stuff, but calls from apis.js functions not available.

我不想递归地要求这个,但我需要在getData函数中使用它而不超出范围。 我不知道如何使用回调。有人可以解释如何使用回调并同时提供外部apis.js函数的功能吗?

1 个答案:

答案 0 :(得分:2)

在getData的示例回调函数中,api变量被回调自己的api参数覆盖。因此,如果您想访问api require编辑,则至少需要为其指定一个唯一名称:

var api = require("./plugins/apis”);

var information = getData(ACCESS_TOKEN, function (err, res, _api) {
  // do stuff
  // _api was passed here from getData()
  // api is still the object pulled in from your call to require()
});