首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rethinkdb changes()没有返回值

rethinkdb changes()没有返回值
EN

Stack Overflow用户
提问于 2018-03-17 15:46:14
回答 1查看 43关注 0票数 0
代码语言:javascript
复制
function fetchProduct()
{
   $cursor = r\table("tableOne")->changes()->run($conn);

    foreach ($cursor as $product) {
       yield $product;
    }
}


$product = fetchProduct();
var_dump($product);
echo "i"; //when the function use yield, this line executed. But when return used, it doesn't come to this line.

我知道rethinkdb的changes()会不断监听变化,所以我发现在$cursor上使用will更好。但是yield不向主叫方返回值。但是当使用return时,返回的值。

当发生变化时,如何使收益率返回任何值?

参考文献:

https://rethinkdb.com/docs/async-connections/

What does yield mean in PHP?

EN

回答 1

Stack Overflow用户

发布于 2018-03-17 16:15:43

在使用yield()时,这可以有效地使函数“返回”迭代器。因此,根据您链接的示例,“在PHP中,产出是什么意思?”你需要遍历返回值。

代码语言:javascript
复制
function fetchProduct()
{
    //$cursor = r\table("tableOne")->changes()->run($conn);
    $cursor = range(1,5);
    foreach ($cursor as $product) {
        yield $product;
    }
}


//$product = fetchProduct();
//var_dump($product);
foreach ( fetchProduct() as $product ){
    var_dump($product);
}
echo "i";

在上面的示例中,我将其更改为使用range()作为值,但这显示了如何处理返回值,以及如何使其工作与如何工作之间的差异。

我想说的是,我不知道rethinkdb是如何工作的,但更多的是关于yield()是如何工作的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49333721

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档