首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ES6模块,停止执行代码

ES6模块,停止执行代码
EN

Stack Overflow用户
提问于 2016-05-24 22:24:42
回答 2查看 1.7K关注 0票数 5

这听起来像是一个奇怪的问题:如何从ES6模块中离开执行上下文?

请参阅下面的示例: Module1需要浏览器中的一些特性才能出现(比如说,不是每个浏览器都实现了当前的一些新特性)。

您希望在模块中进行检查,如果需要的功能可用,如果没有,您希望停止执行。

在使用直接函数调用编写该函数时,您只需调用return,以下代码就永远不会执行。

如何在ES6模块中做到这一点?我必须将整个代码包装到一个if块中吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-24 22:30:44

如果从ES6模块导出可执行代码,通常是作为一个函数:

代码语言:javascript
复制
export function myFunction() {
    ...
}

---

import { myFunction } from './module';
myFunction();

此函数的工作方式与直接在调用模块中定义的任何其他函数一样。您可以简单地将return发送给调用方,否则:

代码语言:javascript
复制
export function myFunction() {
    if(...) return;

    ...
}
票数 1
EN

Stack Overflow用户

发布于 2016-05-24 22:38:18

在ES6/ES6 2015中没有特殊的工具(据我所知)可以做到这一点。此外,所有出口必须是顶级的.这也意味着,如果一个模块曾经有一个给定的导出,它将总是拥有该导出。当然,出口的价值可能会发生变化,但导出“接口”必须始终相同。

如果您不想导出某些值,如果某个条件没有满足,那么您就无法这样做。但是,在这种情况下,您始终可以将这些值设置为nullundefined。如果导出没有问题,那么ES5提供了一些工具,在此之前,您可以使用。

生活(如你所知):

代码语言:javascript
复制
(function() {
  ...
  if (someCondition) {
    return;
  }
  // code that won't run
})();

一个迭代for循环(不知道为什么要使用这个,但可以):

代码语言:javascript
复制
for (var i = 0; i < 1; i++) {
  ...
  if (someCondition) {
    break;
  }
  // code that won't run
}

还有一个很好的老式的if声明:

代码语言:javascript
复制
...
if (!someCondition) {
  // code that won't run
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37424893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档