2016-06-15 6 views
1

나는 코드처럼이 :javascript에서 디 바운스 된 함수의 값을 반환하는 방법은 무엇입니까?

var originalFunction = function() { 
    return 'some value'; 
}; 

var debouncedFunction = _.debounce(originalFunction, 3000); 

console.log('debouncedFunction() result: ', debouncedFunction()); 

console.log('originalFunction() result: ', originalFunction()); 

(codepen link)

그리고 콘솔의 결과는 다음과 같습니다 당신이 볼 수 있듯이, 디 바운싱 기능이 아무것도 반환하지 않습니다

debouncedFunction() result: undefined 

originalFunction() result: some value 

. 나는 그것이 debounced 함수의 내부 타이머에 의해 일어난다는 것을 이해하지만, 그 주위에는 떨어져 있나? 디 바운싱 기능을 비동기 적으로 호출되기 때문이다

답변

3

- 당신이 결과를 전달하는 또 다른 함수를 호출 할 수 있지만 당신이 그들로부터 값을 반환 할 수 없습니다 _.debouncesetTimout 사용 후드

var originalFunction = function() { 
    console.log('some value'); 
    // or something like: callback(result) 
}; 

var debouncedFunction = _.debounce(originalFunction, 3000); 

console.log('debouncedFunction() result: ', debouncedFunction());