Javascript 获取不同的webapi响应并以同步方法处理数据
我正在一个服务中实现一个用于初始化indexedDB数据的方法。 该方法应在方法Ordini_Sincronizza中调用webapi,获取结果并处理索引数据库 代码如下:Javascript 获取不同的webapi响应并以同步方法处理数据,javascript,angular,typescript,rxjs,es6-promise,Javascript,Angular,Typescript,Rxjs,Es6 Promise,我正在一个服务中实现一个用于初始化indexedDB数据的方法。 该方法应在方法Ordini_Sincronizza中调用webapi,获取结果并处理索引数据库 代码如下: SyncCustomer(codCli: string): Observable<boolean> { this.mdService.Ordini_Sincronizza(codCli).subscribe( data => { this._DBService.
SyncCustomer(codCli: string): Observable<boolean>
{
this.mdService.Ordini_Sincronizza(codCli).subscribe(
data => {
this._DBService.Configurazione.clear().then(
act => {
let itm = new ConfigurazioneFlat();
itm.codIva = data.configurazione.codIva;
itm.notOrd = data.configurazione.notOrd;
itm.ordini_nota = data.ordiniArticoli.nota;
this._DBService.Configurazione.add(itm);
console.log('INITIALIZED: Configurazione_Flat');
}
);
this._DBService.Configurazione_Sconti.clear().then(
act => {
for (let itm of data.configurazione.sconti) {
this._DBService.Configurazione_Sconti.add(itm);
}
console.log('INITIALIZED: Configurazione_Sconti');
}
);
this._DBService.Configurazione_TipiOmaggio.clear().then(
act => {
for (let itm of data.configurazione.tipiOmaggio) {
this._DBService.Configurazione_TipiOmaggio.add(itm);
}
console.log('INITIALIZED: Configurazione_TipiOmaggio');
}
);
this._DBService.Listino_Testata.clear().then(
act => {
for (let l of data.listini) {
this._DBService.Listino_Testata.add(l.testata);
}
console.log('INITIALIZED: Listino_Testata');
}
);
return Observable.of(true);
},
error => {
console.log(error);
return Observable.of(false);
});
return Observable.of(null);
}
但我面临的奇怪行为是,在控制台中收到日志消息后,我立即收到警报(“ok”)
我认为这肯定是一个同步/异步调用问题,但我不知道如何管理它
多亏了支持,所以您希望接收第一个控制台日志,并且在完成所有操作后调用
警报('ok')
?mxr7350可能重复,我希望在执行所有清除/插入命令后执行警报('ok')。尝试使用forkJoin或promise。所有这些都是为了简化编解码器,您能给我举个例子吗?
DownloadData()
{
this.syncService.SyncCustomer(this.p_codCli).subscribe(
data => {
alert('ok');
},
error => {
alert('err');
console.log(error);
});
}