Javascript subscribe()函数会发生什么
我正在从事一个有角度的项目。我使用Javascript subscribe()函数会发生什么,javascript,Javascript,我正在从事一个有角度的项目。我使用ng2智能表作为我项目的表。还有人把它和firebase连接起来了。但我无法通过查看代码来理解它是如何工作的。附加的代码如下。(我为我的项目的患者组件添加了这个ng2智能表) 患者.组件.ts import { Component, OnInit } from '@angular/core'; import { PatientsService } from './patients.service'; import { Patients } from './pat
ng2智能表
作为我项目的表。还有人把它和firebase连接起来了。但我无法通过查看代码来理解它是如何工作的。附加的代码如下。(我为我的项目的患者
组件添加了这个ng2智能表
)
患者.组件.ts
import { Component, OnInit } from '@angular/core';
import { PatientsService } from './patients.service';
import { Patients } from './patients.model';
@Component({
selector: 'ngx-patients',
styles: [],
template: `
<ng2-smart-table
(createConfirm)="addData($event)"
[settings]="settings"
[source]="list"
>
</ng2-smart-table>
`
})
export class PatientsComponent implements OnInit {
list: Patients[] = [];
constructor(private service: PatientsService) {}
ngOnInit() {
this.service.getPatients().subscribe(actionArray => {
let a = actionArray.payload.get('data');
if (a) {
this.list = a;
}
});
}
settings = {
add: {
addButtonContent: '<i class="nb-plus"></i>',
createButtonContent: '<i class="nb-checkmark"></i>',
cancelButtonContent: '<i class="nb-close"></i>',
confirmCreate: true
},
edit: {
editButtonContent: '<i class="nb-edit"></i>',
saveButtonContent: '<i class="nb-checkmark"></i>',
cancelButtonContent: '<i class="nb-close"></i>'
},
delete: {
deleteButtonContent: '<i class="nb-trash"></i>',
confirmDelete: true
},
columns: {
id: {
title: 'ID'
},
name: {
title: 'Full Name'
},
username: {
title: 'User Name'
},
email: {
title: 'Email'
}
}
};
addData(event) {
this.list.push(event.newData);
console.log(this.list);
this.service.addPatient({ data: this.list }).subscribe(next => {
event.confirm.reject();
});
}
}
**patients.service.ts**
import { Injectable } from '@angular/core';
import { AngularFirestore } from '@angular/fire/firestore';
import { Patients } from './patients.model';
import { from } from 'rxjs';
@Injectable({
providedIn: 'root'
})
export class PatientsService {
//patients
patients : Patients;
constructor(private firestore: AngularFirestore) { }
/**
* this is for the get informations about patients
*/
getPatients(){
return this.firestore.collection('patients').doc('patientData').snapshotChanges();
}
addPatient(object){
return from(this.firestore.collection('patients').doc('patientData').set(object))
}
}
export class Patients {
id: string;
name: string;
username: string;
email: string;
}
下面的关键词会发生什么
- 订阅
- 推
- 有效载荷
有人能帮我吗。Angular基于一个名为RxJs的库,它是JavaScript的反应式扩展。反应式编程是基于可观察的。在开始角度开发之前,这是一个需要学习的概念。可观测数据就像是一组数据,随着时间的推移,这些数据的值会进入其中。订阅可观测对象时,每次可观测对象沿流发出值时,都会运行订阅函数 这是一个概念,不能涵盖在一个单一的StackOverflow答案,但一些好的地方开始
push方法在数组中添加新元素。订阅和负载不是来自普通JavaScript,请提供更多详细信息,例如您正在使用哪些库或框架。