`fs-extra` 与 `bluebird` 集成得到 `Cannot read 属性 'then' of undefined` 错误

`fs-extra` integrate with `bluebird ` got `Cannot read property 'then' of undefined` error

这是我的代码

var Promise = require('bluebird');
var fse = Promise.promisifyAll(require('fs-extra'));

fse.remove('./myDir').then(function () {
  console.log('Remove myDir done.')
});

我总是遇到 TypeError: Cannot read property 'then' of undefined 错误。

版本:

node: v6.9.2
bluebird: 3.4.7
fs-extra: 1.0.0

我搜索并找到了一个相似的 但不完全相同的答案,我尝试了那个答案,不幸的是,它不能解决我的问题。

我错过了什么吗?

我发现正确的做法是fse.removeAsync,在fse.remove后加上Async后缀,请看bluebirdAPIhere。希望对其他人有帮助。

更新:

使用最新的 fs-extra,我不再需要导入 bluebird。 请参阅 here,下面的语法运行良好。

// Promise Usage
fs.remove('/tmp/myfile')
.then(() => {
  console.log('success!')
})
.catch(err => {
  console.error(err)
})