用了promisifyAll,但是调用文件管理器处理的时候,还是不能使用promise。相关代码和输出在下面
这方面我是新手,如果有使用不当和理解有误的地方,请大家指教。
promisifyAll(wx, wxp)
const manager = wx.getFileSystemManager()
console.log(manager.readdir);// promisify无效
promisify(manager.readdir)(({ dirPath: `${wx.env.USER_DATA_PATH}/sheshui` })).then(res => {
console.log('本地文件列表: ', res)
}).catch(err => {
console.log('本地文件列表读取失败: ')
})// 调用成功不报错
const managerx = wxp.getFileSystemManager()
console.log(promisify(manager.readdir)); // promisify成功
console.log(managerx.readdir);// promisify无效 与上一行结果不同
// 试图将manager重新promisifyAll一下
var managertemp = {}
promisifyAll(manager, managertemp)
console.log(managertemp.readdir); // promisify无效,打印原函数
var newFn = promisify(manager.readdir)
console.log(newFn);// 打印结果显示设置成功
第二行第五行是promisify成功的输出结果。