簡體   English   中英

TypeError:util.promisify不是函數嗎?

[英]TypeError: util.promisify is not a function?

我正在嘗試在我的react應用程序中承諾zlib.gunzip

const zlib = require('zlib')
const util = require('util')

const gunzipPromisified = util.promisify(zlib.gunzip)

但是我得到這個錯誤:

TypeError:util.promisify不是一個函數

如果我將其放在一個獨立的腳本文件中並通過node運行它,那會很好。

如果我嘗試:

import zlib from 'zlib'
import util from 'util'

const gunzipPromisified = util.promisify(zlib.gunzip)

我得到了一些更奇特的東西:

TypeError:__WEBPACK_IMPORTED_MODULE_8_util ___ default.a.promisify不是一個函數

我想念什么?

[編輯]我的筆記本電腦上安裝的node.js版本是8.9.1。

[編輯]有人評論說,安裝在我本地開發環境中的node.js與應用程序代碼在瀏覽器中可以訪問的內容無關。 所以現在我的問題是,如何確定我可以在瀏覽器中訪問的API?

我遇到了同樣的問題,它通過將Node更新到高於Node 7的版本來解決。

n latest

在我的情況下,Node 9.2.0是后來添加的。

我在Ionic遇到了同樣的問題。 util promisify對我也不起作用,並且產生了與OP相同的錯誤。 我最終使用了下面復制的這個簡單解決方案

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)

當然,當我切換到bluebird的Promise時,一切正常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM