我需要创建对可观察
的订阅,该订阅在第一次调用时立即被处理掉。
有没有像这样的东西:
observable.subscribeOnce(func);
我的用例是,我正在一个快速路由处理程序中创建一个订阅,每个请求都会多次调用该订阅。
更新(2021 12月):
由于toPromise()
函数在RxJS 7中已被弃用,因此已宣布使用新函数代替它。第一个值从
和最后一个值从
。
firsValueFrom
函数解析第一个发出的值并直接取消订阅资源。当Observable完成而不发出任何值时,它会以EmptyError拒绝。
另一方面,lastValuefrom
函数在一定程度上与toPromise()
相同,因为它解析了可观察对象完成时发出的最后一个值。但是,如果可观察对象没有发出任何值,它将拒绝并返回一个空错误。不像toPromise()
在没有值发出时解析未定义
。
有关更多信息,请查看文档。
老回答:
如果您只想调用一次可观察对象,这意味着您不会等待来自它的流。因此,在您的情况下,使用 toPromise() 而不是 subscribe
() 就足够了,因为 toPromise()
不需要取消订阅。
RxJS有一些我见过的最好的留档。按照下面的链接,您将看到一个非常有用的将用例映射到运算符的表。例如,在“我想取第一个值”用例下有三个运算符:第一个
、第一个Or默认
和示例
。
请注意,如果一个可观察序列在没有通知的情况下完成,那么< code>first操作符会通知订户一个错误,而< code>firstOrDefault操作符会向订户提供一个默认值。
操作员用例查找
不是100%确定您需要什么,但如果您只想观察第一个值,请使用first()
或take(1)
:
observable.first().subscribe(func);
注意:.采取(1)
和. First()
都在满足条件时自动取消订阅
来自编码器的评论。
import { first } from 'rxjs/operators'
observable
.pipe(first())
.subscribe(func);
这就是原因
我在代理“客户”群体中用Anylogic创建了一个时间表,客户必须创建订单并将其发送到“终端”。每天,每个客户必须发送到终端的订单量都是不同的。我想一次创建多个订单(每天,即计划中的开始列),我想创建的金额是计划中的值列。如何做到这一点? 正如您在下面看到的,现在每天只创建一个订单(以金额为参数),但我想在那一天/那一刻创建这个订单量。谢谢您的帮助! 日程数据如下所示:
说明 支付宝境外到店支付-预创建订单 官方文档:https://global.alipay.com/service/transaction_QR_Code/13 类 请求参数类 请求参数 类名:\Yurun\PaySDK\AlipayCrossBorder\InStore\PreCreate\Request 属性 名称 类型 说明 $service string 接口名称 $notify_url
问题内容: 我需要一次创建多个表。我很难找出正确的方法来完成此任务。目前,我的脚本如下所示: 显然,这是行不通的,并且不会创建任何表。有一种简单的方法可以一次创建多个表吗? 问题答案: MySQL变得令人困惑,因为您没有划定查询范围。在第一条语句后添加分号: 另外,根据Heredoc文档,请确保位于行的开头, 没有其他字符,除了分号外 。 鉴于上述方法似乎无效,请尝试以下代码: 您 可以 使用(M
创建一个条纹客户非常容易,将一张卡与该客户关联起来,然后随时向他们收费。然而,使用Laravel出纳之后,在任何时候订阅用户的计划都不那么容易。 当用户在“我的设置”中添加卡时,会生成卡令牌。我已尝试在此时存储令牌,并在用户希望更新其订阅时使用它,但出现错误:
我需要对我的商店进行一些定制,但我不知道如何使用WC_Order类在PHP中创建WooCommerce订单。我怎样才能做到这一点? 这是我尝试过的代码:
我想使用Laravel/plan Facade创建一次性付款计划。我可以创建月度、年度计划,但我不知道如何实现一次性付款计划,因为我们可以在stripe dashboard上创建产品时创建一次性付款计划。下面是我创建每月、每年、每周或每天但不是终身/一次性付款的代码。