await 函数失败,是否缺少 babel 编译?

时间:2021-01-02 10:54:19

标签: javascript reactjs create-react-app

我刚刚从一位心怀不满的开发人员手中接过了一个项目,他认为自己是自切片面包以来最好的产品。

The error

他发誓他的代码是在上次提交时运行的……尽管如此,我在 async/await 中遇到了问题。我依稀记得在不支持正确版本的 babel 时遇到了类似的问题,但那是几年前的事了。该项目是使用 create-react-app 创建的。

这是 package.json 文件:

{
  "name": "frontend",
  "version": "0.1.0",
  "private": true,
  "jest": {
    "transform": {}
  },
  "dependencies": {
    "@makerdao/multicall": "^0.11.0",
    "@material-ui/core": "^4.11.0",
    "@material-ui/data-grid": "^4.0.0-alpha.8",
    "@material-ui/icons": "^4.9.1",
    "@testing-library/jest-dom": "^4.2.4",
    "@testing-library/react": "^9.5.0",
    "@testing-library/user-event": "^7.2.1",
    "bignumber.js": "^9.0.1",
    "bip32": "^2.0.6",
    "bip38": "^3.1.1",
    "bip39": "^3.0.2",
    "bitcoinjs-lib": "^5.2.0",
    "bs58check": "^2.1.2",
    "ci": "^1.0.0",
    "fake-indexeddb": "^3.1.2",
    "highcharts": "^8.2.2",
    "highcharts-react-official": "^3.0.0",
    "jest-fetch-mock": "^3.0.3",
    "json-bigint": "^1.0.0",
    "json-bignumber": "^1.0.2",
    "keccak256": "^1.0.2",
    "node-fetch": "^2.6.1",
    "puppeteer": "^5.5.0",
    "qrcode-svg": "^1.1.0",
    "react": "^16.14.0",
    "react-dom": "^16.14.0",
    "rimraf": "^2.6.3",
    "secp256k1": "^4.0.2",
    "typescript": "^4.0.5",
    "web3": "^1.3.0",
    "xmlhttprequest": "^1.8.0"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test --verbose",
    "eject": "react-scripts eject",
    "predeploy": "npm run build",
    "deploy": "gh-pages -d build"
  },
  "eslintConfig": {
    "extends": [
      "react-app",
      "plugin:react/recommended"
    ]
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  },
  "devDependencies": {
    "ansi-regex": "^4.1.0",
    "eslint-plugin-react": "^7.21.5",
    "gh-pages": "^3.1.0",
    "react-scripts": "^3.4.4"
  }
}

1 个答案:

答案 0 :(得分:1)

您正在向函数传递一个 promise,而 promise 不是一个函数。您应该改为:await f 而不是通过 await f() 执行它,因为承诺只需要被调用而不是被执行。