以下代码是用节点版本8
编写的const fs = require('fs').promises
const [, pairA] = require('./pairs.json')
const accountASignsTx = async (secret) => {
const fundsReleaseTx = await fs.readFile('./fundsReleaseTx.x', { encoding: 'base64'
})
我已经导入了readfile模块,但是出现以下错误
TypeError: Cannot read property 'readFile' of undefined
2)我教过删除.promises,然后它就无法处理,请帮助我
答案 0 :(得分:1)
我的立场是正确的,但是AFAIK在 FS Promises
中添加了 nodejs V10.x
API:
如果您希望该功能正常运行,则必须将nodejs升级到 版本 10.x or higher
。另外请注意,它位于 experimental
标志的后面,因此您必须对其进行处理。
答案 1 :(得分:0)
我认为您的问题是,您导出的不是整个fs
模块,而是一些promises
作为fs模块。尝试更改
const fs = require('fs').promises
到
const fs = require('fs')
还fs.readFile
作为异步函数,但它不返回promise,因此您不能await
。它具有一个回调参数,当函数完成执行时将执行该回调参数。因此,您可以将其包装在Promise中,以使用await
等待它:
await new Promise(resolve=>
fs.readFile('./fundsReleaseTx.x', { encoding: 'base64' },
resolve)
或者您可以只使用fs.readFileSync
来阻止进一步的代码执行,直到它完成工作为止,因此您不需要任何其他技巧即可等待它。