Асинхронное именованное стрелка Функция ошибки «Неожиданный токен» - PullRequest
0 голосов
/ 18 мая 2019

Я изучаю React, используя приложение create-Reaction-app.Была ситуация, которую Google не мог решить.Где я не прав?Как это исправить?

Я не понимаю, почему мой код работает на codepen.io.https://codepen.io/VaskaDeGame/pen/zQzeGM Но не работает на локальной машине: (

const getResource = async (url) => {
    const res = await fetch(url);
    return res.json();
};
getResource('https://swapi.co/api/people/1/')
    .then((body) => {
        console.log(body);
    });
Module build failed: SyntaxError: Z:/projects/vdg_swapi/src/index.js: Unexpected token (10:32)
   8 | );
   9 | 
> 10 | const getResource = async (url) => {
     |                                 ^
  11 |     const res = await fetch(url);
  12 |     return res.json();
  13 | };
    at Parser.pp.raise (Z:\projects\vdg_swapi\node_modules\react-scripts\node_modules\babylon\lib\parser\location.js:22:13)
    at Parser.pp.unexpected (Z:\projects\vdg_swapi\node_modules\react-scripts\node_modules\babylon\lib\parser\util.js:89:8)
    at Parser.pp.parseAsyncArrowFromCallExpression (Z:\projects\vdg_swapi\node_modules\react-scripts\node_modules\babylon\lib\parser\expression.js:369:47)
    at Parser.parseAsyncArrowFromCallExpression (Z:\projects\vdg_swapi\node_modules\react-scripts\node_modules\babylon\lib\plugins\flow.js:389:20)
    at Parser.pp.parseSubscripts (Z:\projects\vdg_swapi\node_modules\react-scripts\node_modules\babylon\lib\parser\expression.js:320:21)
    at Parser.pp.parseExprSubscripts (Z:\projects\vdg_swapi\node_modules\react-scripts\node_modules\babylon\lib\parser\expression.js:287:15)
    at Parser.pp.parseMaybeUnary (Z:\projects\vdg_swapi\node_modules\react-scripts\node_modules\babylon\lib\parser\expression.js:257:19)
    at Parser.pp.parseExprOps (Z:\projects\vdg_swapi\node_modules\react-scripts\node_modules\babylon\lib\parser\expression.js:188:19)
    at Parser.pp.parseMaybeConditional (Z:\projects\vdg_swapi\node_modules\react-scripts\node_modules\babylon\lib\parser\expression.js:165:19)
    at Parser.pp.parseMaybeAssign (Z:\projects\vdg_swapi\node_modules\react-scripts\node_modules\babylon\lib\parser\expression.js:128:19)
    at Parser.parseMaybeAssign (Z:\projects\vdg_swapi\node_modules\react-scripts\node_modules\babylon\lib\plugins\flow.js:460:20)
    at Parser.pp.parseVar (Z:\projects\vdg_swapi\node_modules\react-scripts\node_modules\babylon\lib\parser\statement.js:601:24)
    at Parser.pp.parseVarStatement (Z:\projects\vdg_swapi\node_modules\react-scripts\node_modules\babylon\lib\parser\statement.js:424:8)
    at Parser.pp.parseStatement (Z:\projects\vdg_swapi\node_modules\react-scripts\node_modules\babylon\lib\parser\statement.js:120:19)
    at Parser.parseStatement (Z:\projects\vdg_swapi\node_modules\react-scripts\node_modules\babylon\lib\plugins\flow.js:30:22)
    at Parser.pp.parseBlockBody (Z:\projects\vdg_swapi\node_modules\react-scripts\node_modules\babylon\lib\parser\statement.js:529:21)
 @ multi main
errors @ client:47

package.json

{
  "name": "swapi",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "react": "^15.2.1",
    "react-dom": "^15.2.1",
    "react-scripts": "0.1.0"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "eject": "react-scripts eject"
  }
}

Версия узла: v12.2.0

Что интересно, если вы запустите этот код в браузере Google Chrome, то он будет работать без ошибок.

<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>VDG SWAPI</title>
      <link rel="stylesheet" href="https://bootswatch.com/4/slate/bootstrap.min.css">
  </head>
  <body>
    <div id="root"></div>
    <script>
      getResource = async (url) => {
        const res = await fetch(url);
        return res.json();
      };
      getResource('https://swapi.co/api/people/1/')
              .then((body) => {
                console.log(body);
              });

    </script>
  </body>
</html>

1 Ответ

0 голосов
/ 18 мая 2019

Я вижу, у вас есть очень старая версия того, что выглядит как create-react-app. Зависимости в одной, которую я создал 2 месяца назад, равны

"react": "^16.8.3",
"react-dom": "^16.8.3",
"react-scripts": "2.1.5",

Эти зависимости, в свою очередь, зависят от конкретной версии транспиллера. Не могли бы вы проверить свой package-lock.json, чтобы увидеть, какую версию babel вы используете? Если вы используете ниже 7, вы можете либо обновить свои зависимости, либо добавить поддержку функции стрелки. см https://babeljs.io/docs/en/babel-plugin-transform-es2015-arrow-functions

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...