javascript - 当它总是正确的时候为什么要使用while?
问题描述
我看到 redux-saga 中的大多数示例都使用while(true){}
:
function* watcherSaga(){
while (true) {
yield something()
}
}
我们不能简单地写吗?
function* watcherSaga(){
yield something()
}
或者,有什么不同吗?
解决方案
看看下面的例子。一个生成器永远不会“完成”,而另一个生成器在第一个(也是唯一一个)yield 之后完成。
function something() {
return Math.random();
}
function* watcherSaga1() {
while (true) {
yield something();
}
}
function* watcherSaga2() {
yield something();
}
const watcher1 = watcherSaga1();
const watcher2 = watcherSaga2();
console.log('watcher1: ', watcher1.next());
console.log('watcher1: ', watcher1.next());
console.log('watcher1: ', watcher1.next());
console.log('watcher2: ', watcher2.next());
console.log('watcher2: ', watcher2.next());
console.log('watcher2: ', watcher2.next());
推荐阅读
- python - 如何从表单中获取数据并在 django 的下拉列表中显示
- javascript - 如何将鼠标悬停事件添加到图像
- workflow - 为什么气流没有像拖放这样的 UI 构建 dag 和任务的功能?
- php - Eloquent - 使用带有关系的闭包
- c# - 使用 C# 创建控制台应用程序以从 Azure 表存储读取数据
- python - 如何为 sklearn.exposure.rescale_intensity 找到参数 in_range 和 out_range 的最佳值
- mule - 如何在 Munit4 中将值从一个测试传递到另一个测试?
- c# - 无法打开管道。GLE=2
- azure-devops - 如何使用无服务器 Azure 管道部署 python 应用程序?
- python - xml.etree.ElementTree.ParseError:文档元素后的垃圾