手動宣傳回撥

有時可能需要手動宣傳回撥函式。這可能適用於回撥不遵循標準錯誤優先格式或者需要其他邏輯來實現 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);
});