1

这是我的代码

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

我搜索并发现了一个类似的问题,但并不完全相同,我尝试了这个答案,不幸的是,它无法解决我的问题。

我错过了什么吗?

4

1 回答 1

0

我发现正确的方法是fse.removeAsync,添加Async后缀fse.remove,请在此处查看 bluebird API 。希望它可以帮助别人。

更新:

使用最新的fs-extra,我不再需要导入bluebird。请参阅此处,以下语法效果很好。

// Promise Usage
fs.remove('/tmp/myfile')
.then(() => {
  console.log('success!')
})
.catch(err => {
  console.error(err)
})
于 2017-01-03T09:03:39.990 回答