0

debounceUnderscore.js の関数の説明は次のとおりです。

渡された関数の新しいデバウンスされたバージョンを作成して返します。この関数は、最後に呼び出されてから待機ミリ秒が経過するまで実行を延期します。入力が到着しなくなった後にのみ発生するはずの動作を実装するのに役立ちます。たとえば、Markdown コメントのプレビューのレンダリング、ウィンドウのサイズ変更が停止した後のレイアウトの再計算などです。

watchr を使用してそのような動作を実装する簡単な方法はありますか? データベース ファイルを編集しているため、いつ保存するかを制御できません。そして、編集が終わったらルビで何かしたい。

4

1 に答える 1

1

それほど単純な解決策ではありません- Thread

class Debouncer                                         
  def initialize(seconds, &block)                       
    @seconds = seconds                                  
    @block = block                                      
  end                                                   

  def register_event                                    
    Thread.kill(@thread) unless @thread.nil?            
    @thread = Thread.new do                             
      sleep @seconds                         
      @block.call                                       
    end                                                 
  end                                                   

end                                                     

debouncer = Debouncer.new(30) { do_thing } 
watch( 'venus/database/(.*)' )   {|md| debouncer.register_event()}
于 2012-06-01T03:22:36.887 に答える