有人可以向我解释一下:为什么ES6中的发电机功能标有星号符号?
例如,而不是:
function *someGenerator() {
yield 1;
yield 2;
yield 3;
}
Run Code Online (Sandbox Code Playgroud)
我们可以写:
function someGenerator() {
yield 1;
yield 2;
yield 3;
}
Run Code Online (Sandbox Code Playgroud)
甚至:
var someGenerator = () => {
yield 1;
yield 2;
yield 3;
}
var someObject = {
someGenerator() {
yield 1;
yield 2;
yield 3;
}
}
Run Code Online (Sandbox Code Playgroud)
JS编译器可以在分析时检测到someGenerator包含yield运算符,并从该函数生成一个生成器.
为什么检测yield存在不够?
在Ionic我可以回去使用:
var backView = $ionicViewService.getBackView();
backView && backView.go();
Run Code Online (Sandbox Code Playgroud)
问题是如何在backView之前进入视图?就像是:
var backBackView = $ionicViewService.getView(-2);
backBackView && backBackView.go();
Run Code Online (Sandbox Code Playgroud) 有谁知道一些技巧怎么做?我试着用try-catch:
"use strict";
const a = 20;
var isConst = false;
try {
var temp = a; a = a+1; a = temp;
} catch (e) {
isConst = true;
}
Run Code Online (Sandbox Code Playgroud)
但遗憾的是,它仅适用于"严格"模式.没有"use strict",它会默默地执行所有语句,而不进行修改a.此外,我无法将此代码包装到一些方便的函数中(isConstant(someConst)例如),因为我将传递给该函数的任何参数都将是一个新变量.所以任何人都知道如何创建isConstant()功能?
保持数据库中某些实体的更新(差异)的最佳方法是什么?在 StackOverflow,我们可以编辑问题和答案。然后我们可以查看我们想要的问题或答案的任何修订。例如: 修改一些随机问题。也许有人知道它在 StackOverflow 中是如何实现的?
需要明确的是,在我的例子中,我有一些实体 ( article) 和一些字段 ( name, description, content) 。许多用户可以编辑同一篇文章。我想保留文章更新的历史记录(类似于版本控制),并且我想仅保留差异,而不是更新文章的全部内容。顺便说一句,我使用 PostgreSQL,但可以迁移到任何其他数据库。
UPD 开放赏金,所以这里有一些要求。你不需要完全满足他们。但如果你这样做的话,效果会好很多。尽管如此,我们非常感谢任何答案。所以我想拥有一种能力:
header、description或content(如 StackOverflow 的标题和内容会发生变化),因此必须考虑到这一点。假设我有一个IndexedDB名字的集合items.所有项目都有字段:
revisionfield是一个数字字段.我需要检索具有最大修订值的项目(或者至少只检索最大修订版本值).最好的方法是什么?
我在玩节点流和子进程。所以我想用管道模拟下一个 shell 命令:
ps au | grep ssh
Run Code Online (Sandbox Code Playgroud)
所以我写了下一个代码:
var spawn = require('child_process').spawn;
var ps = spawn('ps', ['au']);
var grep = spawn('grep', ['ssh']);
ps.stdout.pipe(grep.stdin);
grep.stdout.on('data', function(data) { console.log(data) });
Run Code Online (Sandbox Code Playgroud)
然后我运行它,但没有任何反应。我做错了什么?
PS - 我知道:
require('child_process')
.exec('ps au | grep ssh', function(err, stdout, stderr) {
...
}).
Run Code Online (Sandbox Code Playgroud)
我只是在玩 Node.js,我想了解这个例子有什么问题。
更新 1:
看来 grepbash程序按预期工作,但 grepssh没有结果。虽然ps au | grep ssh给了我这个结果:
vagrant 11681 0.0 0.1 10464 916 pts/0 S+ 07:54 0:00 grep --color=auto ssh.
Run Code Online (Sandbox Code Playgroud) 查看'util'模块的源代码,您可以看到isFunction方法定义:
function isFunction(arg) {
return typeof arg === 'function';
};
exports.isFunction = isFunction;
Run Code Online (Sandbox Code Playgroud)
但是当我运行node时,util库中缺少'isFunction':
var util = require('util');
'isFunction' in util; //false
Run Code Online (Sandbox Code Playgroud)
我错过了什么?哪里'isFunction'方法正在从'util'中删除?
javascript ×6
ecmascript-6 ×2
node.js ×2
angularjs ×1
database ×1
indexeddb ×1
mysql ×1
pipe ×1
postgresql ×1
sql ×1