【问题标题】:await function failing, is a babel compile thing missing?等待函数失败,是否缺少 babel 编译的东西?
【发布时间】:2021-01-02 10:54:19
【问题描述】:

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

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"
  }
}

【问题讨论】:

  • 承诺!= 功能。我认为应该是await f 而不是await f(),但我可能错了。
  • 奇怪的是,这部分代码是两个月前写的,而且网站的静态构建几天后就开始工作了......所以肯定有其他问题
  • 也许吧!除非我们看到一些实际的代码,否则我们无法判断。添加代码。然后添加错误。而不是截图。

标签: javascript reactjs create-react-app


【解决方案1】:

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

【讨论】:

  • 我很确定这不是问题,老开发者最近设法构建和部署了静态站点,而那段代码是 2 个月前编写的。
  • @Webel 这怎么不是问题?这正是错误所说的。 f 不是函数。
  • 是的...我确实明白了,我全心全意地信任其他开发人员。原来他撒谎了。
猜你喜欢
  • 2010-11-11
  • 1970-01-01
  • 2017-03-28
  • 2022-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-24
相关资源
最近更新 更多