breakable

WebJar for breakable

Лицензия

Лицензия

MIT
Группа

Группа

org.webjars.npm
Идентификатор

Идентификатор

breakable
Последняя версия

Последняя версия

1.0.0
Дата

Дата

Тип

Тип

jar
Описание

Описание

breakable
WebJar for breakable
Ссылка на сайт

Ссылка на сайт

http://webjars.org
Система контроля версий

Система контроля версий

https://github.com/olov/breakable

Скачать breakable

Как подключить последнюю версию

<!-- https://jarcasting.com/artifacts/org.webjars.npm/breakable/ -->
<dependency>
    <groupId>org.webjars.npm</groupId>
    <artifactId>breakable</artifactId>
    <version>1.0.0</version>
</dependency>
// https://jarcasting.com/artifacts/org.webjars.npm/breakable/
implementation 'org.webjars.npm:breakable:1.0.0'
// https://jarcasting.com/artifacts/org.webjars.npm/breakable/
implementation ("org.webjars.npm:breakable:1.0.0")
'org.webjars.npm:breakable:jar:1.0.0'
<dependency org="org.webjars.npm" name="breakable" rev="1.0.0">
  <artifact name="breakable" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.webjars.npm', module='breakable', version='1.0.0')
)
libraryDependencies += "org.webjars.npm" % "breakable" % "1.0.0"
[org.webjars.npm/breakable "1.0.0"]

Зависимости

Библиотека не имеет зависимостей. Это самодостаточное приложение, которое не зависит ни от каких других библиотек.

Модули Проекта

Данный проект не имеет модулей.

breakable.js

Break out of functions, recursive or not, in a more composable way than by using exceptions explicitly. Non-local return.

Usage

You can use breakable to break out of simple loops like this example but note that it is often simpler to just use .some instead. Anyways, here's a minimal example.

var breakable = require("breakable");

breakable(function(brk) {
    arr.forEach(function(v) {
        if (...) {
           brk();
        }
    });
});

Pass a value to brk and it becomes the return-value of breakable.

breakable is useful when you want to break out of a deep recursion, passing a value, without riddling your code with exception ceremony.

Instead of:

var esprima = require("esprima").parse;
var traverse = require("ast-traverse");
var ast = esprima("f(!x, y)");

var val;
try {
    traverse(ast, {pre: function(node) {
        if (node.type === "UnaryExpression" && node.operator === "!") {
            val = node.argument;
            throw 0;
        }
    }});
} catch(e) {
    if (val === undefined) {
        throw e; // re-throw if it wasn't our exception
    }
}

console.dir(val); // { type: 'Identifier', name: 'x' }

you use breakable and do:

var breakable = require("breakable");
var esprima = require("esprima").parse;
var traverse = require("ast-traverse");
var ast = esprima("f(!x, y)");

var val = breakable(function(brk) {
    traverse(ast, {pre: function(node) {
        if (node.type === "UnaryExpression" && node.operator === "!") {
            brk(node.argument);
        }
    }});
});

console.dir(val); // { type: 'Identifier', name: 'x' }

Installation

Node

Install using npm

npm install breakable
var breakable = require("breakable");

Browser

Clone the repo and include it in a script tag

git clone https://github.com/olov/breakable.git
<script src="breakable/breakable.js"></script>

Версии библиотеки

Версия
1.0.0