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 

あなたが見ることができるように、デバウンス機能は何も返しません。私は、それがデバウンスされた関数の内部タイマーによって引き起こされたことを理解していますが、その周りにはありますか?デバウンス機能が非同期的に呼び出されるためです

答えて

3

- あなたは結果を渡す別の関数を呼び出すことができますが、あなたは、彼らから値を返すことはできません:フード_.debounce

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

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

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

setTimoutを使用して、あなたは、コールバックを必要としますasync関数から戻り値を返します。ここで

function originalFunction (callback) { 
    callback("some value"); 
} 

は、同じに大きなリンクです https://john-dugan.com/javascript-debounce/

関連する問題