回调如何在JavaScript中运行?

时间:2015-08-02 04:00:55

标签: javascript

我在我的代码中遇到了一个示例,它引导我重新审视Javascript中的回调,我总是摇摇欲坠。

示例:我需要函数“type”来执行并在函数“erase”之前完成。我可以添加一些计时器来确保它结束,但我想找到一个更好的方法。

挖掘类型:

function type() {
    captionEl.html(caption.substr(0, captionLength++));
    if(captionLength < caption.length+1) {
        setTimeout('type()', 50);
    } else {
        captionLength = 0;
        caption = '';
    }
}

在caption =“”(没有“)之前,函数不会结束 - 那就是当我想看看erase()运行时。

那么,我是否将回调作为参数传递给类型(如类型(回调)),然后执行回调,其中caption设置为nothing?但是如何“测试”类型函数以将标题设置为“”?

1 个答案:

答案 0 :(得分:0)

如果在4完成后始终调用erase,则不需要回调,只需要正常的函数调用:

type

如果function type() { captionEl.html(caption.substr(0, captionLength++)); if(captionLength < caption.length+1) { setTimeout(type, 50); } else { captionLength = 0; caption = ''; erase(); } } type(); 完成后发生的任何事情可能会有所不同,那就是您需要回调的时候:

type

callback只是一个在变量中传递的函数。 JavaScript有first-class functions,这意味着它们可以作为参数传递或由其他函数返回。 This article在更彻底地解释回调方面做得非常好。