手動宣傳回撥
有時可能需要手動宣傳回撥函式。這可能適用於回撥不遵循標準錯誤優先格式或者需要其他邏輯來實現 promisify 的情況:
使用 fs.exists(路徑,回撥)的示例 :
var fs = require('fs');
var existsAsync = function(path) {
return new Promise(function(resolve, reject) {
fs.exists(path, function(exists) {
// exists is a boolean
if (exists) {
// Resolve successfully
resolve();
} else {
// Reject with error
reject(new Error('path does not exist'));
}
});
});
// Use as a promise now
existsAsync('/path/to/some/file').then(function() {
console.log('file exists!');
}).catch(function(err) {
// file does not exist
console.error(err);
});