【问题标题】:Call exported function in exported function在导出函数中调用导出函数
【发布时间】:2018-05-18 15:48:01
【问题描述】:

我需要在另一个中调用导出的函数。

这是我的第一个函数,称为:

import initialization from './initialization';
export default (a, b) => {
  console.log('called 1.')
  initialization();
};

这是我在分离文件 (initialization/index.js) 中的另一个导出函数,我想在前一个函数中调用它。

export default () => {
  function someInnerFunc() {
     //...
  }
  return () => {
    console.log(called 2.);
  };
};

在控制台中,我只有“称为 1”的消息。所以我猜第二个函数没有被调用。你能帮我修一下吗?谢谢。

编辑:

第一个函数在我的 app.js 中被这样调用:

handlers(foo1, foo2);

我确定调用了第一个函数,因为我在控制台中收到消息,问题出在第二个。

【问题讨论】:

  • 看起来你从来没有真正调用过第一个函数。
  • 哪一行应该调用第一个函数?你如何导入这些函数? minimal reproducible example 请。
  • @djfdev 第一个函数被调用,但在我的应用程序 js 脚本中......我只是没有把它放在这里
  • @JJJ 请检查我更新的问题.. 我没有在这里调用第一个函数,因为我想这无关紧要。第一个函数的消息在控制台中,所以它被 100% 调用
  • 那么,如果问题出在第二个函数上,为什么不展示你是如何导入它的呢?这是一个返回函数的函数,因此您必须调用它两次才能显示控制台日志,但没有看到完整的示例,这只是猜测。

标签: javascript ecmascript-6 ecmascript-5 ecma


【解决方案1】:

您的 initialization 方法返回另一个函数。

您需要执行该函数才能看到第二条日志消息。

import initialization from './initialization';
export default (a, b) => {
  console.log('called 1.')
  var initResult = initialization();
  initResult();
};

虽然不清楚你想用这段代码实现什么。

【讨论】:

  • 感谢您的回答,但我想像这样调用初始化函数:/ 是否可以像在示例中那样编辑初始化函数来调用它?
  • @DenisStephanov 是的。删除console.log 周围的return () => {};
猜你喜欢
  • 2014-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-24
  • 1970-01-01
  • 1970-01-01
  • 2016-05-02
  • 1970-01-01
相关资源
最近更新 更多