Тернарные операторы
-
Что-то не так в работе с тернарными операторами. Или они не поддерживаются?
Такой кодvar response = http_client_content(); var data = JSON.parse(response); log('data: ' + data); data ? BE.callbacks.apiRequestCallback(data) : log('Error parse JSON api response, ' + response);
выводит в лог следующее
[01:26:16] Поток №1 : data: [object Object]
[01:26:16] Поток №1 : Error parse JSON api response, {}в последней строке кода должно выполниться BE.callbacks.apiRequestCallback(data), если data не null, false, или undefined
Если сделать то же самое через if-else, то все работает
-
@blackhacker JSON.parse выкидывает исключение если парсинг не удался, так что лучше оформить код так
var response = http_client_content(); var data = null; try { data = JSON.parse(response); log('data: ' + data); BE.callbacks.apiRequestCallback(data) }catch(e) { log('Error parse JSON api response, ' + response); }
Тернарный оператор работает, такой код
var test = {a:"b"} log(test) test ? log(1) : log(2)
выводит
[17:37:48] Поток №1 : [object Object] [17:37:48] Поток №1 : 1
а такой код
var test = null log(test) test ? log(1) : log(2)
[17:38:37] Поток №1 : [17:38:37] Поток №1 : 2