问题描述
尝试使用新的基于ES6的node.js ODM for Mongo(Robe )
Trying to use a new ES6 based node.js ODM for Mongo (Robe http://hiddentao.github.io/robe/)
获取意外严格模式保留字错误。我在这里错了吗?
Getting "unexpected strict mode reserved word" error. Am I dong something wrong here?
test0.js
"use strict";
// Random ES6 (works)
{ let a = 'I am declared inside an anonymous block'; }
var Robe = require('robe');
// :(
var db1 = yield Robe.connect('127.0.0.1');
运行它:
C:\TestWS>node --version
v0.11.10
C:\TestWS>node --harmony test0.js
C:\TestWS\test0.js:12
var db1 = yield Robe.connect('127.0.0.1');
^^^^^
SyntaxError: Unexpected strict mode reserved word
at exports.runInThisContext (vm.js:69:16)
at Module._compile (module.js:432:25)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:349:32)
at Function.Module._load (module.js:305:12)
at Function.Module.runMain (module.js:490:10)
at startup (node.js:123:16)
at node.js:1031:3
推荐答案
如果您要使用做异步以同步方式运行,您必须这样做:
If you want to use generators to do asynchronous operation in synchronous fashion you must do it like:
co(function*() {
"use strict";
{ let a = 'I am declared inside an anonymous block'; }
var Robe = require('robe');
var db1 = yield Robe.connect('127.0.0.1');
})();
其中 co 实现你可以找到:
where co
realization you can find in:
- co
- Task.js
- bluebird's Promise.coroutine
- q's spawn
等等
在严格模式
中,您不能使用 yield
的发电机。 非严格模式
发生器之外的收益
将被视为变量标识符 - 所以在你的情况下抛出错误。
In strict mode
you cannot use yield
outside of the generators. In non-strict mode
outside of the generators yield
will be considered as variable identifier - so in your case it'll throw an error anyway.
这篇关于意外严格模式保留字 - 收益?节点v0.11,和谐,es6的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!