我正在尝试在我的 React 应用程序中 promise zlib.gunzip
:
const zlib = require('zlib')
const util = require('util')
const gunzipPromisified = util.promisify(zlib.gunzip)
但是我得到这个错误:
TypeError: util.promisify is not a function
如果我将它放在一个独立的脚本文件中并通过 node
运行它,效果很好。
如果我尝试:
import zlib from 'zlib'
import util from 'util'
const gunzipPromisified = util.promisify(zlib.gunzip)
我得到了更高级的东西:
TypeError: __WEBPACK_IMPORTED_MODULE_8_util___default.a.promisify is not a function
我错过了什么?
[编辑] 我的笔记本上安装的 node.js 版本是 8.9.1。
[编辑] 正如有人评论的那样,我本地开发环境中安装的 node.js 与应用程序代码在浏览器中可以访问的内容无关。所以现在我的问题是,我如何确定我可以在浏览器中访问哪些 API?
最佳答案
我在 Ionic 中遇到了同样的问题。 util promisify 对我也不起作用,并且产生了与 OP 相同的错误。我最终使用了 this simple solution复制如下:
const promisify = (fn) => {
return (...args) => {
return new Promise((resolve, reject)=>{
fn(...args, function(err, res){
if(err){
return reject(err);
}
return resolve(res);
})
})
}
}
然后:
const requestPromisified = promisify(request)
关于javascript - TypeError : util. promisify 不是函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47299323/