Представляем себе для объяснения первого примера:
Области JavaScript являются функциональными, а не блочными, а создание замыкания означает, что охватывающая область добавляется в лексическую среду закрытой функции.
После того, как цикл завершается, переменная уровня функции i имеет значение 5, и это то, что внутренняя функция «видит».
blockquote>Во втором примере для каждого этапа итерации внешний литерал функции будет оценивать новый объект функции со своей собственной областью и локальной переменной
num
, значение которой установлено на текущее значениеi
, Посколькуnum
никогда не изменяется, он будет оставаться постоянным в течение срока действия замыкания. Следующий шаг итерации не перезаписывает старое значение, поскольку объекты функции являются независимыми.Имейте в виду, что этот подход является довольно неэффективным, поскольку для каждой ссылки необходимо создать два новых функциональных объекта. Это необязательно, поскольку их можно легко обменивать, если вы используете узел DOM для хранения информации:
function linkListener() { alert(this.i); } function addLinks () { for(var i = 0; i < 5; ++i) { var link = document.createElement('a'); link.appendChild(document.createTextNode('Link ' + i)); link.i = i; link.onclick = linkListener; document.body.appendChild(link); } }
Я незнаком с Eclipse Che, но, похоже, вы можете просто запустить их образы на своей машине, предполагая, что у вас установлен Docker.
Начните с создания локального каталога данных, возможно:
mkdir -p ${PWD}/che/data
Затем:
docker run
--interactive \
--tty \
--rm \
--net=host \
--volume=/var/run/docker.sock:/var/run/docker.sock \
--volume=${PWD}/che/data:/data \
eclipse/che:nightly start
https://www.eclipse.org/che/docs/ che-6 / docker-single-user.html
Вам может не понадобиться флаг --net=host
После этого вы сможете получить доступ к инструменту:
[ 1115] http: // localhost: 8080
NB Ваши шаги 1 & amp; 2 (git clone...
и mvn clean install
), вероятно, являются избыточными. Скорее всего, это команды для создания образа Docker. Но, поскольку образ уже существует в dockerhub, вам не нужно выполнять следующие шаги.
Попробуйте команду docker:
docker run -it --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /d/checmd3/che/assembly/assembly-main/target/eclipse-che-7.0.0-beta-2.0/eclipse-che-7.0.0-beta-2.0:/che \
-e CHE_ASSEMBLY='/d/checmd3/che/assembly/assembly-main/target/eclipse-che-7.0.0-beta-2.0/eclipse-che-7.0.0-beta-2.0' \
-v /d/checmd3/che/tmp:/data \
eclipse/che start
НАД РАБОТАЕТ КОМАНДА
INFO: (che init): CHE_VERSION=7.0.0-beta-2.0
INFO: (che init): CHE_CONFIG=/d/checmd3/che/tmp
INFO: (che init): CHE_INSTANCE=/d/checmd3/che/tmp/instance
INFO: (che config): Generating che configuration...
INFO: (che config): Customizing docker-compose for running in a container
INFO: (che start): Preflight checks
mem (1.5 GiB): [OK]
disk (100 MB): [OK]
port 8080 (http): [AVAILABLE]
conn (browser => ws): [OK]
conn (server => ws): [OK]
INFO: (che start): Starting containers...
INFO: (che start): Services booting...
INFO: (che start): Server logs at "docker logs -f che"
INFO: (che start): Booted and reachable
INFO: (che start): Ver: 7.0.0-beta-2.0
INFO: (che start): Use: http://172.26.10.112:8080
INFO: (che start): API: http://172.26.10.112:8080/swagger
Вы можете сначала попытаться запретить Eclipse Che вытягивать изображение из концентратора Docker, установив: CHE_DOCKER_ALWAYS__PULL__IMAGE=false
в вашем файле конфигурации che.env .
Если это не поможет, то я думаю, что вам нужно установить и запустить локальный реестр Docker, а затем отправить созданный вами образ Eclipse Che локально в этот реестр.
docker run -d -p 5000:5000 --name registry registry:2
docker image tag che:7.0.0-beta-2.0 eclipse/che:7.0.0-beta-2.0
docker push eclipse/che:7.0.0-beta-2.0
Затем вы можете вытащить и запустить свой образ, используя команду запуска Docker.
Вы можете остановить реестр следующим образом:
docker container stop registry && docker container rm -v registry
Произошла ошибка при запуске предложенной вами команды:
$ docker run --interactive --tty --rm --net = host --volume = // var / run / docker. sock: //var/run/docker.sock --volume = / $ {PWD} / che / data: / затмение данных / che: ночной старт
Следующее является журналом:
[113 ] Невозможно найти изображение 'eclipse / che: latest', локально последний: извлечение из eclipse / che d6a5679aa3cf: полное извлечение cc87d3e420c3: полное завершение afef80a99ec8: полное завершение d4be2f254bed: полное извлечение 3e449e5a7821: полное завершение: Pull завершение 3 Добыча завершена Дайджест: sha256: bd853bd40a4fafe73153dda478f1191d3d29447f3d110584933a5fb22e8cb199 Статус: загружен более новый образ для eclipse / che: последняя ошибка: нет такого изображения или контейнера: вчера не было такого изображения или контейнера: ошибка linuxkit-00155d19290k: я не получил [112] [я не получил
: я не получил [112] [я не получил [114] [я не получил [114] [я не получил][я не получил [114] [я не получил [114] [я не получил]
[я не получил [112] [я не получил [114] [я ошибался]: [114] [114]