主要原因是示例的複雜性。使用readFileSync
可讓您編寫同步順序代碼,當給出示例時,不需要提供可用於同步異步代碼的各種解決方案。
例如,使用readFile
一個威力:
fs.readFile('/path/to/franciskim.co.key', 'utf8', function (err, privateKey) {
if (err) { // .. handle no key found;
return;
}
fs.readFileSync('/path/to/franciskim.co.crt', 'utf8', function (err, certificate) {
if (err) { // .. handle no cert found;
return;
}
var credentials = { key: privateKey, cert: certificate };
// Now create https server here
});
});
這裏這個例子是一個接近等同於readFileSync
除了現在你必須明確地處理錯誤。使用readFileSync
只會導致異常並導致應用程序崩潰。使用異步版本,您必須明確處理錯誤,而且不同的開發人員通常不同地處理錯誤。
使用異步函數確實打開了提高性能的機會,例如通過同時打開兩個文件。
var async = require('async');
async.parallel([
fs.readFile.bind(fs, '/path/to/franciskim.co.key', 'utf8'),
fs.readFile.bind(fs '/path/to/franciskim.co.key', 'utf8')
], function (err, results) {
var credentials = { key: results[0], cert: results[1] };
// Open https server here
});
這是偉大的,所有,但現在我們在另一個庫,因爲有多個(壞)的方式必須實現這個邏輯自己拉。
readFileSync
的使用保留了一些例子,解釋和一致性錯誤流量的空間很小。
也很好的原因++ – CaptEmulation
謝謝兄弟。 –