Javascript 节点抛出意外严格模式保留字“;“收益率”;

Javascript 节点抛出意外严格模式保留字“;“收益率”;,javascript,node.js,typeorm,Javascript,Node.js,Typeorm,这是一个映射到javascript代码的typescript代码。来源是 const connection: Connection = await createConnection(); 从中转换为 const connection = yield typeorm_1.createConnection(); 然后它抛出 /path/to/api/build/routes/admin.js:22 let admins = yield con.manager.find(Admin

这是一个映射到javascript代码的typescript代码。来源是

const connection: Connection = await createConnection();
从中转换为

const connection = yield typeorm_1.createConnection();
然后它抛出

/path/to/api/build/routes/admin.js:22
        let admins = yield con.manager.find(Admin_1.Admin);
                     ^^^^^

SyntaxError: Unexpected strict mode reserved word
    at createScript (vm.js:80:10)
    at Object.runInThisContext (vm.js:152:10)
    at Module._compile (module.js:624:28)
    at Object.Module._extensions..js (module.js:671:10)
    at Module.load (module.js:573:32)
    at tryModuleLoad (module.js:513:12)
    at Function.Module._load (module.js:505:3)
    at Module.require (module.js:604:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/home/lulliezy/Documents/Projects/blog/api/build/app.js:10:13)
/path/to/api/build/routes/admin.js:22
让admins=yield con.manager.find(Admin_1.Admin);
^^^^^
SyntaxError:意外的严格模式保留字
在createScript上(vm.js:80:10)
在Object.runInThisContext(vm.js:152:10)
在模块处编译(Module.js:624:28)
在Object.Module.\u extensions..js(Module.js:671:10)
在Module.load(Module.js:573:32)
在tryModuleLoad时(module.js:513:12)
在Function.Module.\u加载(Module.js:505:3)
at Module.require(Module.js:604:17)
根据需要(内部/module.js:11:18)
反对。(/home/lulliezy/Documents/Projects/blog/api/build/app.js:10:13)

我到处都找了,但我还没有找到解决方案,这让我发疯,有什么解决方案、修复方法或解决方法吗?我将非常感谢,提前感谢您需要使用发电机来解决此问题。是这样一种流行的生成器,它将帮助您编写/执行非阻塞代码

使用下面的命令安装它

npm install co
然后将代码包装在co中,这样可以防止基于关键字引发错误。像这样,

var co = require('co');

co(function*() {
    "use strict";
     .................
     ........................
     let admins = yield con.manager.find(Admin_1.Admin);
     .................
     ........................
    return something;
}).then(function (returnVal) {
    console.log (returnVal);
}, function (e) {
    console.log(e.stack);
});

希望这有帮助

好吧,我终于发现我做错了什么。在调用该行函数之前,我缺少了一个
async
关键字,我要使它成为
async
,所以它应该是这样的

/*****/
async function() {
    const connection: Connection = await createConnection();
}
/****/

正如David正确地说的,在同步过程中使用异步操作的生成器,您将需要重新构造代码以:

const co = require('co');

co(function*() {
    "use strict";

   /path/to/api/build/routes/admin.js:22
     let admins = yield con.manager.find(Admin_1.Admin);
注意:当使用
使用严格
模式时,不要在
co(函数*(){
之外使用
屈服
。因为它会再次抛出该错误


您可能想了解更多有关如何使用和的信息。

非常感谢。这正是问题所在;缺少
async
关键字。