手动宣传回调

有时可能需要手动宣传回调函数。这可能适用于回调不遵循标准错误优先格式或者需要其他逻辑来实现 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);
});