Async / Await не работает с узлом 4.x.Могу ли я иметь альтернативу? - PullRequest
0 голосов
/ 24 сентября 2018

Ошибка ниже, когда я пытаюсь использовать async/await с NodeJs 4.x .Любая проблема с приведенным ниже примером кода или я должен использовать альтернативный?

асинхронная функция main () {^^^^^^^^

SyntaxError: Неожиданная функция токена

Образцы кода:

(async function () {

        const intgetIDvalue = await fntest(getID);

     }

 })();

 async function fntest (getID) {
   return await knex
     .select('column1')
     .from('tablename')
     .where('ID',getID)
 }

Ответы [ 3 ]

0 голосов
/ 24 сентября 2018

Node 4.x Не поддерживает асинхронное ожидание из коробки.Я полагаю, что в вашем случае проще всего добавить к нему поддержку babel-node.

Run npm install babel-cli --save-dev

и добавить его в свой package.json

"scripts": {
    "start": "babel-node --presets env src/index.js"
  },

, который вам может понадобитьсячтобы изменить src / index.js файлом вашей точки входа.

, затем установить пресеты

npm install babel-preset-env --save-dev

, затем запустить свой проект, используя

npm start

, это должно сделатьУловка.

Преимущество этого по сравнению с установкой asyncawait состоит в том, что вам не нужно ничего менять в вашем коде, поскольку asyncawait предоставляет вам функции, поведение которых аналогично операциям async и await, но на самом деле не переносит вашcode.

PS: вы также можете указать свои пресеты в файле .babelrc, не стесняйтесь читать об этом здесь https://babeljs.io/docs/en/config-files#file-relative-configuration

0 голосов
/ 24 сентября 2018

попробуйте async.js http://caolan.github.io/async/

var async = require("async");  
async.map(['file1','file2','file3'], fs.stat, function(err, results) {
    // results is now an array of stats for each file
});

async.parallel([
    function(callback) { ... },
    function(callback) { ... }
], function(err, results) {
    // optional callback
});
0 голосов
/ 24 сентября 2018

попробуйте установить asyncawait .Это должно работать для более старых версий узлов.Другие альтернативы используют обратный вызов или обещания.

вам потребуется это

  1. npm install asyncawait

  2. требуютмодули.

    var async = require('asyncawait/async');

    var await = require('asyncawait/await');

  3. выполнять операции.

    (async function () { const intgetIDvalue = await fntest(getID); })();

...