Функция SetTimeOut () и поведение функций стрелок в угловом (начальный уровень) [дубликат]

a невозможно сделать в subpoint. что реализации там нет.

0
задан NoobOfNoobs 10 April 2017 в 07:29
поделиться

5 ответов

Это из-за порядка выполнения. Если вы передадите вызов функции setTimeout, функция будет выполнена немедленно, то есть функция сразу же будет помещена в стек выполнения javascript.

Если вы передадите имя функции, то есть ссылку на функцию, функция будет только помещена в стек выполнения потока javascript после окончания таймера.

2
ответ дан Quan Vuong 17 August 2018 в 12:24
поделиться

Правильный способ передачи ссылки функции - использовать обратные вызовы.

names.forEach(name => setTimeout(function() {
    printer(name);
}, 1000));

обратные вызовы содержат ссылку на функцию.

setTimeout(callbackFunction, milliseconds);
0
ответ дан Ankush Jain 17 August 2018 в 12:24
поделиться

Вы можете сделать это следующим образом:

setTimeout(printer, 1000, name)
0
ответ дан Matansh 17 August 2018 в 12:24
поделиться

вы можете попробовать следующее:

setTimeout(function(){printer(name)}, 1000)
1
ответ дан Sahal Tariq 17 August 2018 в 12:24
поделиться

setTimeout должен принимать функцию в качестве своего первого аргумента.

Пожалуйста, обратитесь:

https://www.w3schools.com/jsref/met_win_settimeout.asp

Здесь вы передаете результат функции в качестве первого аргумента, который является undefined.

0
ответ дан Sridhar Sg 17 August 2018 в 12:24
поделиться
Другие вопросы по тегам:

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