“否则不 运行 在函数中执行(错误)

"else not running executing in function(err)

我正在尝试通过控制台记录我的函数是否 运行 成功,或者遇到错误。

var gui = require('nw.gui'); 
var fs  = require('fs');

onload = function() {
    //console.log(gui.App.argv);
    console.log("onload() is running - from <saveFile.js>")
    var outputPath = gui.App.dataPath + "\saves\" + "content.txt";
    var content = "hello world";
    fs.writeFileSync(outputPath, JSON.stringify(content), "utf8", function(err) {
        if(err) {
            console.log(err);
        }
        else{ 

                console.log('saved in ' + outputPath);
        }
    });


};

如果遇到错误,它会记录下来,但 else 语句永远不会执行。

fs.writeFileSync() 是同步的。它不将回调作为参数。如果有错误,它会抛出异常。否则,当它returns时,就完成了。

the node.js doc 的函数签名是这样的:

fs.writeFileSync(file, data[, options])

您可以将现有代码切换到 fs.writeFile(),它是异步的并且确实接受回调,或者切换为使用正确的参数和错误处理 fs.writeFileSync()