angular - 将代码从 Angular/RXJS 4 重写为 6
问题描述
我很难为 Angular 6 重写这段代码。我的 Angular 应用程序经常出现 RXJS 库错误。我什至尝试安装 Rxjs-compat,但到目前为止,还没有解决任何问题。
public publicar(): void {
this.bd.publicar({
email: this.email,
titulo: this.formulario.value.titulo,
imagem: this.imagem[0]
})
let acompanhamentoUpload = Observable.interval(1500)
let continua = new Subject()
continua.next(true)
acompanhamentoUpload
.takeUntil(continua)
.subscribe(() => {
//console.log(this.progresso.status)
//console.log(this.progresso.estado)
this.progressoPublicacao = 'andamento'
this.porcentagemUpload = Math.round(( this.progresso.estado.bytesTransferred / this.progresso.estado.totalBytes ) * 100)
if(this.progresso.status === 'concluido') {
this.progressoPublicacao = 'concluido'
//emitir um evento do componente parent (home)
this.atualizarTimeLine.emit()
continua.next(false)
}
})
}
解决方案
问题在于 .takeUntil(continua)
您必须将其更改为.pipe(takeUntil(continua))
您还必须像这样导入它:
import { takeUntil } from 'rxjs/operators';
import { Subject } from 'rxjs';
你的代码会是这样的:
public publicar(): void {
this.bd.publicar({
email: this.email,
titulo: this.formulario.value.titulo,
imagem: this.imagem[0]
})
let acompanhamentoUpload = Observable.interval(1500)
let continua = new Subject()
continua.next(true)
acompanhamentoUpload
.pipe(takeUntil(continua))
.subscribe(() => {
//console.log(this.progresso.status)
//console.log(this.progresso.estado)
this.progressoPublicacao = 'andamento'
this.porcentagemUpload = Math.round(( this.progresso.estado.bytesTransferred / this.progresso.estado.totalBytes ) * 100)
if(this.progresso.status === 'concluido') {
this.progressoPublicacao = 'concluido'
//emitir um evento do componente parent (home)
this.atualizarTimeLine.emit()
continua.next(false)
}
})
}
推荐阅读
- reason - 如何在 Reason React 中使用模数运算符?
- python - 为什么从 flow_from_directory 张量流中得到一个空序列?
- powershell - 在 Powershell 中加入两个数据表?
- python - 在每次迭代中,我都在“重新定义/重新分配”或恢复一个变量,这会占用额外的空间吗?
- php - Ngnix + Apache/php-frm 502 网关错误
- android - 我想使用 highchart 在 android 的 stackbar 图表中显示 0% 的数据而没有一列
- ios - 关闭顶层 VC 时不调用 ViewWillAppear
- java - 2.2.6 中缺少 HfileOutputFormat2.java,当我将 hbase lib 从 0.98.6 升级到 2.2.6 时,这个类的替代方案是什么?
- php - 使用 PHP sdk v2 从我们的商家中心获取数据
- python - 使用其他列中的连续差异创建数据框列