我试图在.subscribe
完成后执行一个事件,因为之后的代码取决于结果
verifBordereauExistBase(id: string) {
return this._BourdereauService.get_one(id).subscribe(
data = > {
if (data.idBourdereau == null) {
this.idBourdereauIsValid = false;
} else {
this.idBourdereauIsValid = true;
}
}, err = > {
console.error(err)
}, () = > {})
}
主要测试是
AddBordereautoList() {
this.verifBordereauExistBase(this.idbordereaux);
console.log(this.idBourdereauIsValid)
if (Number.isNaN(Number(this.idbordereaux))) {
this.notifier.notify('error', 'Format code a bare invalide');
} else if (this.idbordereaux.length != 10) {
this.notifier.notify('error', 'Format code a bare invalide');
} else if (this.idBourdereauIsValid == false) {
this.notifier.notify('error', 'Bordereau n'existe pas ');
} else {
if (this.map.size == 0) {
this.map.set(1, this.idbordereaux);
} else {
let x: number = this.verifexistbordereau(this.idbordereaux);
if (x === 0) {
this.map.set(this.map.size + 1, this.idbordereaux);
} else {
this.notifier.notify('error', 'Bordereau N°' + this.idbordereaux + 'existe deja dans la liste!');
}
}
}
this.idbordereaux = "";
}
我正在执行这个代码,this.idBourdereauIsValid
的值落后了一步,它给了我值-1总是
this.verifBordereauExistBase(this.idbordereaux);
下的代码可能在this.verifBordereauExistBase(this.idbordereaux);
有机会返回之前执行。为了确保它做到这一点,将AddBordereautoList()
代码添加到.subscribe
完成步骤:
verifBordereauExistBase(id: string) {
return this._BourdereauService.get_one(id).subscribe(
data = > {
if (data.idBourdereau == null) {
this.idBourdereauIsValid = false;
} else {
this.idBourdereauIsValid = true;
}
}, err = > {
console.error(err)
}, () = > {
console.log(this.idBourdereauIsValid)
if (Number.isNaN(Number(this.idbordereaux))) {
this.notifier.notify('error', 'Format code a bare invalide');
} else if (this.idbordereaux.length != 10) {
this.notifier.notify('error', 'Format code a bare invalide');
} else if (this.idBourdereauIsValid == false) {
this.notifier.notify('error', 'Bordereau n'existe pas ');
} else {
if (this.map.size == 0) {
this.map.set(1, this.idbordereaux);
} else {
let x: number = this.verifexistbordereau(this.idbordereaux);
if (x === 0) {
this.map.set(this.map.size + 1, this.idbordereaux);
} else {
this.notifier.notify('error', 'Bordereau N°' + this.idbordereaux + 'existe deja dans la liste!');
}
}
}
this.idbordereaux = "";
})
}