@Zvezdocheteg

Как взять значение из setTimeout?

Подскажите пожалуйста, как забрать значение с setTimeout .

Вот есть такая функция, как мне получить значение callback() во внешнем коде.

function needValue(callback) {
  var need;
    setTimeout(function() {
      need = callback() // как получить вот это значение во внешнем коде
      console.log(need)
    }, 1000)
}

needValue(function() {
  var item = 10;
  return item;
})
  • Вопрос задан
  • 883 просмотра
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Callback из SetTimeout вызывается асинхронно основному потоку, поэтому единственный вариант - перенести код, использующий необходимое значение в саму callback-функцию или в функцию, вызываемую из callback'а.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@Nwton
Странный у вас код, что вы пытаетесь сделать?
var need; //ставим
function needValue(callback){
	//var need; убираем
	setTimeout(function(){
	need = callback();
		console.log(need);
	}, 1000)
}
Ответ написан
Immortal_pony
@Immortal_pony Куратор тега JavaScript
function needValue(callback) {
    setTimeout(function() {
        need = callback();
        console.log(need)
    }, 1000, callback)
}

needValue(function() {
    var item = 10;
    return item;
})
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы