Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   console.log в promise (https://javascript.ru/forum/misc/81316-console-log-v-promise.html)

laimas 08.11.2020 18:24

console.log в promise
 
Вызывается функция и в ней

function my(argumets) {
    return new Promise( callback => {
        //переменные и всякая работа
        //тут нужно выводить значения двух переменных
        //вывожу 

       console.log(
            var1, var2
       )
......


Все ОК, но вывода в консоль нет, можно alert вставить, будет показано, но это не дело для отладки. Почему нет вывода консоль, словно и не предписано этого? Пошукал в сети, вроде бы и нет такой проблемы.

Aetae 08.11.2020 18:42

Всё работает:
function my(argumets) {
    return new Promise( callback => {
        var var1 = 'var1', var2 = 'var2'

       console.log(
            var1, var2
       )
    })
}
my()

laimas 08.11.2020 18:49

Aetae, а что может быть причиной не работы? Я понимаю, если бы не выполнялась функция, но она отрабатывает на 5, делает все что положено, но вывода нет в консоль, не важно чего, можно все что угодно прописать для вывода, вывод нет.

Aetae 08.11.2020 22:41

Что угодно. Абстрактно можно только проверить, что console.log вообще работает, а то некоторые альтернативно одарённые любят его подменять.

laimas 09.11.2020 01:05

Aetae, я не могу выложить код функции, хотя она и не такая большая, дело в том, что это как бы уже и не мое, продано. А заказчик еще и все просил "зашифровать от конкурентов", а доводы, что не скрыть и если надо, то утянут, не помогло. Ну и как бы выложить где-то, это как бы нельзя. :)

Работу, частью которой является эта функция, делал давно, вроде бы все возможные "если ..." протестировал, но как оказалось не все ситуации учел. Только сейчас замечено, что при определенных условиях конечный результат не совсем корректный. Было только одно предположение - в этом случае получаются отрицательные значения (а должно быть от 0 до ...) при расчете смещений. Вот я и решил вставить вывод в консоль, чтобы контролировать и определить условия при которых наступает "не то".

Ничего необычного в функции нет, вот так:

myF(arguments).then(
//работаем с результатом
);

myF(arguments) {
    return new Promise( callback => {
        //объявление переменных
        //среди которых две, это начальный расчет смещений
        //тут и вставил вывод в консоль 
       
        console.log(
            v1, v2
        )

        //далее несколько функций сортировки     
        //затем по их результату производится окончательный расчет смещений 
        //и значений двух переменных зависящих от этих смещений
        //поэтому тут тоже добавлен вывод в консоль

        console.log(
            d1, d2
        )  
    
        //читается изображение
        im.onload = _=> {
            //тут в цикле расчеты и работа с канвой
            for(...) {
                //...
            }
            
            //закончили, выход 
   
        }
    })
}


Код выполняется без проблем (некорректность не важна в данном случае), а вот вывод в консоль ни один не работает, словно их нет в коде. Разбираться почему, тратить время, сделал отдельно "стендовое устройство" и на нем проверил предположение, оно оказалось верным, доработал и все нормально теперь. Но вопрос так и остался, почему, что в этом коде может быть причиной игнорирования консоли?

voraa 09.11.2020 06:59

Ну остается только в отладчике пройти эту функцию по шагам.

laimas 09.11.2020 07:34

Да я уже сделал, отдельно. Но почему так? Если вместо вывода в консоль вставить alert(), то они срабатывают, показывают, закрываешь их и получаешь результат работы, никаких проблем. А вот на console.log словно табу наложено. :)

Aetae 09.11.2020 11:43

Возможно тот "шифровальщик", которым ты свой код "защищаешь" тупо вырезает console.log?

SuperZen 09.11.2020 11:47

если, например,

const response = await window.fetch(endpoint, config);
console.log('this wont console.log', await response.json());


если fetch не выполнился, т.е. "нет интернета", "респонс не содержит json" то консоль не будет печатать ), да...

Alexandroppolus 09.11.2020 11:56

А если в консоли написать console.log(111), то сработает?


Часовой пояс GMT +3, время: 02:30.