我正在尝试从导出的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函数的功能吗?
答案 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()
});