Показать сообщение отдельно
  #3 (permalink)  
Старый 07.02.2021, 20:33
Аспирант
Отправить личное сообщение для denis_alekss Посмотреть профиль Найти все сообщения от denis_alekss
 
Регистрация: 01.12.2020
Сообщений: 55

Как мы можем вызвать функцию r не объявляя ее?
Интересует вторая строка после конст.
const delay = function(ms) {
return new Promise(function (r) { setTimeout((function () { r() } ),ms) } )


Вначале создается анонимная функция с параметром r, а в теле этой анонимной функции вызывается функция r внутри функции setTimeout, , откуда взялся вызов функции r? Я ведь ее не объявлял, у меня только был параметр с именем r в анонимной, функции r нигде не объявлена как функция. Я про этот вызов r() в анонимной функции.
<script>
const delay = function(ms) {
	return new Promise(function (r){ setTimeout((function () {r()}),ms)})
}
const url = 'https://jsonplaceholder.typicode.com/todos'

function fetchTodos(){
	console.log('Fetch todo started')
	return delay(2000).then(()=>{
	return fetch(url) }).then(response => response.json())
}

fetchTodos()
.then(data =>{
console.log('Data', data)})
.catch(e=>console.error(e))
</script>
Ответить с цитированием