Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 逻辑运算符后的屈服_Javascript_Node.js_Generator_Yield - Fatal编程技术网

Javascript 逻辑运算符后的屈服

Javascript 逻辑运算符后的屈服,javascript,node.js,generator,yield,Javascript,Node.js,Generator,Yield,为什么JavaScript不允许在逻辑运算符之后产生,比如&或|,甚至?例如,当我尝试: function *generator(arg1, arg2) { yield arg1 && yield arg2; } 在大多数浏览器和NodeJ中,它都会抛出一个错误,即yield是保留字。当我使用yield*时也会发生同样的情况。但是,即使在同一行中,我也可以将两条语句与yield(或yield*)背靠背使用,如下所示: function *generator(arg1,

为什么JavaScript不允许
在逻辑运算符之后产生
,比如
&
|
,甚至
?例如,当我尝试:

function *generator(arg1, arg2) {
    yield arg1 && yield arg2;
}
在大多数浏览器和NodeJ中,它都会抛出一个错误,即
yield
是保留字。当我使用
yield*
时也会发生同样的情况。但是,即使在同一行中,我也可以将两条语句与
yield
(或
yield*
)背靠背使用,如下所示:

function *generator(arg1, arg2) {
    yield arg1; yield arg2;
}
我理解这两种类型的声明之间存在一些差异,但它们似乎非常相似,应该允许两者都使用。为什么不是这样为什么在分号后面直接允许
产生,而不是逻辑运算符?

请参见

yield
关键字导致生成器函数执行暂停,并且 将
yield
关键字后面的表达式的值返回到 发电机的来电。可以将其视为基于生成器的版本 返回
关键字的

yield
关键字实际上返回一个带有两个 属性,
完成
属性是 计算
yield
表达式和
done
是一个
布尔值
发电机功能是否已完全完成

出现
yield
期望表达式跟随
yield
yield表达式和&yield
将在
&
之后返回
yield
,而不会到达第二个表达式;不会将
迭代器结果
返回到生成器函数

请参阅

yield
关键字导致生成器函数执行暂停,并且 将
yield
关键字后面的表达式的值返回到 发电机的来电。可以将其视为基于生成器的版本 返回
关键字的

yield
关键字实际上返回一个带有两个 属性,
完成
属性是 计算
yield
表达式和
done
是一个
布尔值
发电机功能是否已完全完成

出现
yield
期望表达式跟随
yield
yield表达式和&yield
将在
&
之后返回
yield
,而不会到达第二个表达式;不会将
迭代器结果
返回到生成器函数

请参阅

yield
关键字导致生成器函数执行暂停,并且 将
yield
关键字后面的表达式的值返回到 发电机的来电。可以将其视为基于生成器的版本 返回
关键字的

yield
关键字实际上返回一个带有两个 属性,
完成
属性是 计算
yield
表达式和
done
是一个
布尔值
发电机功能是否已完全完成

出现
yield
期望表达式跟随
yield
yield表达式和&yield
将在
&
之后返回
yield
,而不会到达第二个表达式;不会将
迭代器结果
返回到生成器函数

请参阅

yield
关键字导致生成器函数执行暂停,并且 将
yield
关键字后面的表达式的值返回到 发电机的来电。可以将其视为基于生成器的版本 返回
关键字的

yield
关键字实际上返回一个带有两个 属性,
完成
属性是 计算
yield
表达式和
done
是一个
布尔值
发电机功能是否已完全完成


出现
yield
期望表达式跟随
yield
yield表达式和&yield
将在
&
之后返回
yield
,而不会到达第二个表达式;不会将
迭代器结果
返回到生成器函数

您有语法错误

尝试:


相反,在严格的模式下,当然。(这是我和巴贝尔合作得到的。)

您有语法错误

尝试:


相反,在严格的模式下,当然。(这是我和巴贝尔合作得到的。)

您有语法错误

尝试:


相反,在严格的模式下,当然。(这是我和巴贝尔合作得到的。)

您有语法错误

尝试:


相反,在严格的模式下,当然。(这是我和巴贝尔合作的结果。)

收益率arg1和收益率arg2是您实际想要做的吗?你有真实世界的例子吗?我正在使用
koa
co-fs
。我试图找出一个文件夹是否存在并且是否是一个文件夹(即,
yield fs.exists(this.path)和&fs.stat(this.path).isDirectory()
)以替代
service static
)。我打算用稍微不同的方法来做,但是调查让我好奇。嗯,fs.exists和fs.stat都是异步的。不确定您是否可以返回它们,因为它们需要回调。。。但这并不能回答你的问题。使用
co-fs
你可以。收益率arg1和收益率arg2是你真正想要做的吗?你有真实世界的例子吗?我正在使用
koa
co-fs
。我试图找出一个文件夹是否存在并且是一个文件夹(即,
yield fs.exists(this.path)和&fs.stat(this.path).isDirectory()
)作为
function *g (a1,a2) {yield a1 && (yield a2);}