为什么Handler-Function只能在electron / node.js中匿名工作?

时间:2017-01-26 13:42:06

标签: javascript node.js electron

为什么可以在节点(电子)中写这样的东西:

app.on('ready', function() {
    mainWindow = new BrowserWindow({
        width: 800,
        height: 480
    });
});

但这会产生错误app is not ready

app.on('ready', onReady());

function onReady() {
    mainWindow = new BrowserWindow({
        width: 800,
        height: 480
    });
}

1 个答案:

答案 0 :(得分:1)

这是因为你混淆了函数引用和函数调用。

请注意,函数onReady不返回任何内容。默认情况下,这意味着它返回undefined。

这样做:

app.on('ready', onReady());

导致这一点:

app.on('ready', undefined);

即,调用onReady函数并将其结果传递给app.on()

基本上你所做的就是:

app.on('ready', (function() {
    mainWindow = new BrowserWindow({
        width: 800,
        height: 480
    });
})());

你想要的是:

app.on('ready', onReady);