为什么setTimeout和setInterval的回调是第一个参数?

时间:2016-01-11 03:37:15

标签: javascript

这可能比历史课更重要了。

private View.OnClickListener close_popup_screen_listener = new View.OnClickListener() {
        public void onClick(View v) {
            if (sentencePlayer != null){
                sentencePlayer.stop();
            }
            popUpScreen.dismiss();
            try {
                fd.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            stopMediaRecorder();
        }
    };

第二个版本可以说更有意义,更具可读性。

2 个答案:

答案 0 :(得分:2)

省略第二个参数时,超时默认为0秒。许多开发人员经常使用超时来处理可能出现的一些异步问题。

您将始终拥有回调,否则超时无效,但您不一定需要超时超过0秒。参数是优先排序的。

答案 1 :(得分:1)

如果你看一下documentation for .setTimeout,这很简单。

语法

var timeoutID = window.setTimeout(func, [delay, param1, param2, ...]);
var timeoutID = window.setTimeout(code, [delay]);

第一个参数是必需的,所有其他参数都是可选的。 delay默认为0,其余为可选,并传递给func

鉴于如何function syntax is specified

如何在可选参数之前放置一个可选参数?