问题标签 [method-chaining]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
622 浏览

php - PHP类函数链接中的简单错误检查?

我发现在链接类函数方面有一些有限的用途,比如说$class->setUser('foo')->getInfo()(坏例子),尽管我无法理解如何处理由链中的一个调用引起的任何错误。

例如,如果setUser()出现错误并返回 false,它将不会返回$this并且不允许调用另一个函数,从而显示错误。

我实际上刚刚意识到(如果这是错误的,请纠正我),如果出现错误以setUser()防止以下getInfo()函数运行并发出错误,会抛出异常吗?

至少拥有这将是有用的知识,因此即使我不使用链接,我也可以调试使用链接的代码。

0 投票
1 回答
373 浏览

python - 如何枚举类方法,然后在 python 中用 itertools.product() 链接它们?

我昨天刚刚从这个网站了解到我可以:

我想枚举类 Seq 中这些序列方法链的可能组合,可能是:

  1. 如何itertools.product()使用

    1)。生成可调用的函数链列表?像这样:

    foo = s.head().odd().even().reverse()

    2)。生成 eval()able 链字符串,然后我可以稍后存储在 ascii 文件或 eval() 中或用于记录目的?

  2. ,可以接受参数,而,head()不需要,例如 head() 和 tail() 的参数可以来自列表: tail()even()odd()

    /li>

如果我的 Q1 是可能的,我如何将这些参数填充到可调用列表和 eval()-able 字符串中,也就是生成更具体的可调用列表和 eval()-able 字符串?

谢谢!

0 投票
1 回答
799 浏览

javascript - 延迟不是函数

我不断收到这样的错误:

在我的代码中:

0 投票
3 回答
228 浏览

php - 方法链接和同一类的重用

我有以下课程:

目前,如果我这样做:

这会输出“foo”然后是“fum”。

但是,如果我这样做:

它总是输出“fum”。

我可以看出它为什么会这样做,但是我怎样才能将变量与每个实例分开,而不必创建一个新的 DB 实例?

0 投票
2 回答
768 浏览

php - PHP 链接...我就是不明白!

我正在尝试创建一个链接函数来处理从 XML 文件返回的字符串。

1 个原始字符串可能有多个替换,其中一些来自 XML 文件。

这是丑陋和标准包装的方法:

str_replace("what","is meant", str_replace("name","randomer",str_replace("blah", "hello", $string1)));

这是我试图复制的方法(如 Java):

$string1.replace("blah","hello").replace("name","randomer").replace("what","is meant");

有了上面,它很容易工作......直到我使用 XML 函数来获取替换字符串。

这是我的课:

我希望它了解为什么它没有按我认为的那样工作以及它应该如何实际工作。似乎当我再次调用该类时(尽管 var_dump 说它是一个单独的实例),它用“charlie”替换了原始文本,所以我不能只替换第一位的一部分。

谢谢,多米尼克

编辑:是的!我已经想通了(使用静力学),但似乎下面的 Ryano 有一个更好的解决方案

0 投票
1 回答
655 浏览

.net - 处理链式 XElement 轴方法中的空引用的优雅方法

鉴于这样的事情:

是否有一种优雅的方法来处理 null Blah 或任何元素,因此在这些情况下结果只是 null 或空?

我知道我可以拆分查询并手动进行这些检查,但想知道是否有更简洁的内容。

0 投票
3 回答
513 浏览

php - PHP 方法链

所以我想知道当初始方法是静态函数时是否有方法链的方法。这就是我的意思:

编辑 print foo::a()->b();print foo:a()->b();

0 投票
6 回答
9345 浏览

scala - 具有大量方法链接的 Scala 代码接受/推荐的语法是什么?

在 Scala 中,我倾向于编写大型链式表达式,而不是许多带有val赋值的较小表达式。在我的公司,我们已经为这种类型的代码发展了一种风格。这是一个完全人为的例子(想法是显示一个包含大量链接调用的表达式):

Daniel Spiewak 的Scala Style Guide (pdf),我通常喜欢它,它表明链式方法调用中的前导点表示法可能不好(参见文档:方法调用/高阶函数),尽管它不包括多行表达式直接这样。

是否有另一种更被接受/惯用的方式来编写foo上面的函数?

更新:2011 年 6 月 28 日

下面有很多很棒的答案和讨论。似乎没有 100% 的“你必须这样做”的答案,所以我将通过投票接受最受欢迎的答案,这是目前的理解方法。就个人而言,我认为我现在将坚持使用前导点符号并接受随之而来的风险。

0 投票
2 回答
893 浏览

php - PHP DOM,方法链

我有以下代码行,而第一个符号做了它应该做的(将 XML 元素及其内容添加到 DOM),但如果我链接方法则不会。

以下示例将导致 E_WARNING:DOMNode::appendChild(): Couldn't fetch DOMNode。(我花了大约一个小时才找到那个错误/错误。)

谁能解释为什么不同符号的相同代码会导致错误?

编辑:我上传了一个 test-case,在使用 PHP 5.3.5 运行时会导致 E-WARNING 错误。

0 投票
2 回答
1203 浏览

.net - 在.Net中链接方法的正确方法是什么

在 .Net 中,您可以链接返回值或使用 void 的方法。其中之一是“正确的方式”吗?

所以你可以说

1)

在这种情况下,所有 3 个扩展方法都需要返回 IList(myFoo.Bars 的类型)

或者也可以写成

2)

在这种情况下,扩展方法返回一个 void,但是对进来的源对象做些什么呢?

更新Simon 在他的回答中是正确的 2) 不会编译。这是如何重写的:

然后 myBars 将在每个方法的调用中发生变化,并且这些方法将返回 void。