如果仅使用一个运算符,是否应该使用管道运算符?

时间:2019-02-05 16:24:39

标签: javascript rxjs reactive-programming rxjs-pipeable-operators

RxJs 版本5.5引入了管道运算符,以使合并 RxJs 运算符变得更加容易,并使这些情况下的树木摇晃更有效。我的问题是,如果只打算使用一个运算符,应该使用管道运算符吗?

请考虑以下示例:

HttpResponse response;
HttpPost httpPost;
HttpEntity entity;
List < NameValuePair > parametros = new ArrayList < NameValuePair > ( );
String URL = "";
String mensaje;
try {
    httpPost = new HttpPost ( URL );
    parametros.add ( new BasicNameValuePair ( "submit", "MODIFICAR" ) );
    httpPost.setEntity ( new UrlEncodedFormEntity ( parametros, Consts.UTF_8 ) );
    response = httpClient.execute ( httpPost );
    entity = response.getEntity ( );
    mensaje = EntityUtils.toString ( entity );
    EntityUtils.consume ( entity );
    Document document = Jsoup.parse ( mensaje );
    System.out.println ( document.toString ( ) );
} catch ( IOException e ) {
    e.printStackTrace ( );
}

vs

response

在这样的情况下,您仅使用一个运算符,最合适的方法是什么?

1 个答案:

答案 0 :(得分:1)

简短的回答是“可以,但是不可以” ,因为马丁提到的pipe运算符在6.0版之前不是必需的在注释中(因此版本<6并非必须),并且如果您包含rxjs-compact,则可以使用旧的链接运算符方法(因此您可以实际上使用旧的方法最新版本6。)。

让我们深入探讨一下:“为什么不应该使用它

从5.5版开始,管道操作员就可以使用(但不是强制性)并且通常是首选,因为(那时)我们都知道在下一版本中所有操作员都将包装在pipe 中,因此您可以将5.5 <= 6这段时间想像为迁移窗口,以新的方式考虑。

尽管我们现在的版本为6+,默认情况下使用pipe,但只要您使用rxjs仍支持旧链接(否pipe)同时安装rxjs-compat

所以答案是:如果您使用的是rxjs 5.5+,那么您想利用树抖动功能并按照新标准(如评论中的Cartant所述)编写可读代码吗?

“您必须始终使用管道”