javascript - JS 添加回调来运行下一个函数?

标签 javascript design-patterns function callback

如何添加某种回调,以便我可以在 render() 完成后运行进一步的代码?

function next(){
    target = max;
    render();

    //When render complete, do some more
    //change values....
    //render();

}

function prev(){
    target = min;
    render();

    //When render complete, do some more
}

var timer;

function render(){
    timer = setInterval(renderIt, 40);
}

function renderIt(){

    if (condition) {
    clearInterval(timer);
    return;
        }

    //Do the stuff

}

最佳答案

render将函数引用作为参数。

function next(){ 
    target = max; 

    // pass a function reference to render
    render( function() { 
        //When render complete, do some more 
        //change values.... 
        alert('moved next!'); 
    } ); 

} 

function prev(){ 
    target = min; 
    render( function() { 
        //When render complete, do some more 
        alert('moved prev!');      
    } ); 

} 

var timer; 

function render(fn){ 
    // create an anonymous function to wrap your original call
    timer = setInterval(function() { 
                           // can't pass fn along to renderIt if undefined
                           if (typeof fn === 'undefined') { fn = null; }
                           renderIt(fn); 
                       }, 40); 
} 

function renderIt(fn){ 

    if (condition) { 
        clearInterval(timer); 

       //Do the stuff 
        if (typeof fn === 'function') {
            // invoke the passed method 
            fn();        
        }
        return; 
    } 
}

您不必为 fn 参数提供 render 匿名函数 - 它可以是您定义的任何函数名称。

关于javascript - JS 添加回调来运行下一个函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3823142/

相关文章:

使用函数更改指针包含的地址

javascript - Tizen WebAPI 电话

c# - 在网页中选择多个文件上传

javascript - 在 highcharts 中交叉时突出显示区域图表线

c# - 如何根据键值对创建对象

java - JNA:字符数组作为函数参数

javascript - 使用 css、css-doodle 或 bootstrap 创建图表

javascript - 拆分字符串来初始化javascript数组有什么好处?

php - 未定义索引 - 安全风险与性能与代码膨胀

PHP。有没有办法要求函数参数是一个数组?