收藏
回答

promisifyAll不能处理wx.getFileSystemManager()?

用了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成功的输出结果。

最后一次编辑于  2020-03-01
回答关注问题邀请回答
收藏
登录 后发表内容
问题标签