这是一个非常普遍的问题,但我不太理解。在什么情况下我会更喜欢其中的一种呢?我似乎不明白可能会出现的情况,哪一种会更有利。是否存在强烈的理由避免使用x / 使用x?
这是一个非常普遍的问题,但我不太理解。在什么情况下我会更喜欢其中的一种呢?我似乎不明白可能会出现的情况,哪一种会更有利。是否存在强烈的理由避免使用x / 使用x?
Sync
函数将阻塞相关进程,这可能会影响应用程序或窗口的响应能力。但我对Electron没有深入的了解(真可惜)。
// (Obviously this is just an example, you wouldn't actually read and write a file this way, you'd use streaming...)
fs.readFile("file1.txt", function(err, data) {
if (err) {
// Do something about the error...
} else {
fs.writeFile("file2.txt", data, function(err) {
if (err) {
// Do something about the error...
} else {
// All good
});
}
});
fs.promisifiedXYZ
),它仍涉及回调,但它们更具可组合性:// (See earlier caveat, just an example)
fs.promisifiedReadFile("file1.txt")
.then(function(data) {
return fs.promisifiedWriteFile("file2.txt", data);
})
.then(function() {
// All good
})
.catch(function(err) {
// Do something about the error...
});
async
/await
语法来编写看起来同步的代码,实际上是异步的:// (See earlier caveat, just an example)
(async () => {
try {
const data = await fs.promisifiedReadFile("file1.txt");
fs.promisifiedWriteFile("file2.txt", data);
// All good
} catch (err) {
// Do something about the error...
}
})();
promisify
,但还有其他库。