Тестирование, если объект неопределен или нет, без остановки Node.js

Я немного опаздываю на вечеринку, но я считаю, что нашел что-то, что работает для меня в этом отношении, и это может быть для вас тоже, если ваши обстоятельства одинаковы или похожи.

Я работая над функцией в своей собственной ветке. Филиал не сливается с хозяином и не подталкивает его до тех пор, пока не закончится, или я не совершил коммиты, которые мне кажутся удобными для публики. Итак, что я делаю, когда хочу перенести неустановленные изменения на другой компьютер:

  • Сделайте фиксацию с сообщением фиксации типа «[non-commit] FOR TRANSFER ONLY», в котором отображается содержимое, которое вы хотите передать.
  • Войдите в другой компьютер.
  • Затем выполните: git pull ssh+git://<username>@<domain>/path/to/project/ rb:lb URL-адрес может отличаться для вас, если вы обращаетесь к своему репозиторию по-другому. Это выведет изменения с этого URL-адреса из удаленной ветви «rb» в локальную ветвь «lb». Обратите внимание, что у меня есть ssh-сервер, работающий на моем собственном компьютере, и я могу получить доступ к репозиторию таким образом.
  • git reset HEAD^ (подразумевает --mixed). Сбрасывает HEAD, чтобы указать состояние до «[не-commit]» commit.

Из git-reset (1): «--mixed: Сбрасывает индекс, но не рабочее дерево (т. е. измененные файлы сохраняются, но не помечены для фиксации) [...] "

Таким образом, вы будете иметь свои изменения в файлах в конце, но никакие коммиты не сделаны для освоения и не нуждаются в тире.

Тем не менее это потребует от вас git reset --hard HEAD^ в репозитории, в котором вы сделали «[non-commit]», так как это commit - мусор.

-1
задан Muhammad Syarif 13 July 2018 в 09:32
поделиться

2 ответа

Вы немного недооценили это. Он остановлен, потому что weapon сам undefined, и, следовательно, name не может быть получена из него. Измените свое условие на это:

if (coopSchedule.details[0].weapons[0].weapon == undefined) {
  var currentWeapon1 = coopSchedule.details[0].weapons[0].coop_special_weapon.name;
} else {
  var currentWeapon1 = coopSchedule.details[0].weapons[0].weapon.name;
}
0
ответ дан 31piy 17 August 2018 в 13:16
поделиться

weapon - undefined, поэтому получение name завершается с ошибкой. Вы можете немного сократить код, используя оценку короткого замыкания :

const weapons = coopSchedule.details[0].weapons[0];
const weapon = (weapons.weapon || weapons.coop_special_weapon).name;
2
ответ дан Ori Drori 17 August 2018 в 13:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: