그냥 setTimeout에서 반환 값을 가져오고 싶지만 함수의 전체 텍스트 형식은 무엇입니까?setTimeout에서 반환 값 얻기
function x() {
setTimeout(y = function() {
return 'done';
}, 1000);
return y;
}
console.log(x());
그냥 setTimeout에서 반환 값을 가져오고 싶지만 함수의 전체 텍스트 형식은 무엇입니까?setTimeout에서 반환 값 얻기
function x() {
setTimeout(y = function() {
return 'done';
}, 1000);
return y;
}
console.log(x());
당신은 이것을 위해 약속을 사용해야합니다. 그들은 available in ES6하지만 quite easily을 polyfilled 할 수 있습니다
function x() {
var promise = new Promise(function(resolve, reject) {
window.setTimeout(function() {
resolve('done!');
});
});
return promise;
}
x().then(function(done) {
console.log(done); // --> 'done!'
});
실제로 내 예제에서'done'은 setTimeout 내부에서 반환 될 필요가있는 약속이었습니다. 왜냐하면 setTimeout 내부에서 반환 된 deferred.resolve()를 얻을 수 없기 때문입니다. 어떻게 될까요? 감사합니다 – Vainglory07
질문에 코드의 명확한 예를 게시 할 수 있습니까? –
전달 함수에서 반환 값을 setTimeout
으로 가져올 수 없습니다.
setTimeout
(예제에서 x
) 함수는 setTimeout
에 전달되는 함수가 호출되기도 전에 실행 및 반환을 마칩니다.
당신이 얻은 가치로 무엇을 하든지간에, 당신은 setTimeout
에 전달하는 함수에서 그것을 할 필요가 있습니다.
function x() {
setTimeout(function() {
console.log("done");
}, 1000);
}
x();
멋지고 정확한 설명! –
더 나은 기능 x
하고 어떤 작업 당신이 콜백을 보내 그 시간 종료 후 수행 할에 대한 콜백을 위해 : 당신의 예에서
난 당신이 더 발생 또는 이벤트를 알 수있는 플래그를 갖고 싶은 생각합니다. setTimeout은 값을 반환하지 않습니다. 당신은 이벤트가 발생 감지 변수를 사용하거나 시간 제한이 구문은 그런 식이다
수행 여부, 그것은 단지 기능을 반환합니다 알고 발생한 후 더
당신은 변수 y를 액세스 할 수 없습니다. – Mritunjay
"완료"를 반환 하시겠습니까? 함수의 결과를 어떻게 반환 할 수 있습니까? 1000 ms 후에 호출됩니다. –
시간 제한은 비동기식이므로 반환 할 수 없습니다. (글쎄, 할 수는 있지만 반환 값은 아무 곳에도 없다) – Ferdi265