javascript - TypeError : util. promisify 不是函数?

标签 javascript node.js reactjs promise

我正在尝试在我的 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/

相关文章:

javascript - Meteor JS - 客户端集合似乎是空的

javascript - bExpress bodyparser 未正确配置

reactjs - Azure AD 身份验证和授权 React.js

javascript - 是否可以禁用 jquery 中的单个单选按钮?

javascript - JQuery 将文本设置为输入文本字段

javascript - 对除第一项之外的数组进行排序。 Array.prototype.sort()

javascript - 使用 node.js 监听 udp 数据报

node.js - 无法从 http ://localhost:3000/sw-import. js/resources 读取 swagger JSON

javascript - React 组件不会使用相同的 props 重新渲染,但子状态会发生变化

reactjs - 使用Electron showOpenDialog Filter允许键入用户*。*,这会使过滤器失败