Я, это мой фрагмент:
plageHoraire(): void {
let desordrePlage = new Array();
console.log("analyse plage horaire .....");
for (let i = 0; i < this.plageJour; i++) { //i est le cran
this.isPlageReserver(this.debJ0H['debJour0H'], i).subscribe(data => {
desordrePlage.push(
{
"afficheH": this.trancheDeb + i, "unavailable": data //on check si une des plage son indiponible
}
);
console.log( {"afficheH": this.trancheDeb + i, "unavailable": data});
});
}
var tab = [
{afficheH: 13, unavailable: true}
,{afficheH: 9, unavailable: true}
,{afficheH: 10, unavailable: true}
,{afficheH: 12, unavailable: true}
,{afficheH: 8, unavailable: true}
,{afficheH: 14, unavailable: true}
,{afficheH: 11, unavailable: true}
,{afficheH: 16, unavailable: true}
,{afficheH: 15, unavailable: true}
];
tab.sort(compare); // on passe la référence à la fonction de comparaison
console.log(JSON.stringify(tab));
console.log("test réelle");
console.log(desordrePlage+"DDDDDDDDDDDDD");
desordrePlage.sort(compare);
console.log(JSON.stringify(desordrePlage));
function compare(a, b) {
if (a.afficheH < b.afficheH) {
return - 1;
}
if (a.afficheH > b.afficheH) {
return 1;
}
return 0;
}
}
эта вкладка аккуратна после tab.sort, вкладка данных статическая, я хотел бы desordrePlage, но эти данные будут получены позже после подписки, этот desordrePlage пуст,как я должен сделать для ожидания данные здесь для заказа desordrePlage?
это console.log:
analyse plage horaire .....
heure.component.ts:96 [{"afficheH":8,"unavailable":true},{"afficheH":9,"unavailable":true},{"afficheH":10,"unavailable":true},{"afficheH":11,"unavailable":true},{"afficheH":12,"unavailable":true},{"afficheH":13,"unavailable":true},{"afficheH":14,"unavailable":true},{"afficheH":15,"unavailable":true},{"afficheH":16,"unavailable":true}]
heure.component.ts:98 test réelle
heure.component.ts:99 DDDDDDDDDDDDD
heure.component.ts:103 []
мои данные здесь, это console.log в цикле:
{afficheH: 8, unavailable: true}
heure.component.ts:79 {afficheH: 9, unavailable: true}
heure.component.ts:79 {afficheH: 11, unavailable: true}
heure.component.ts:79 {afficheH: 10, unavailable: true}
heure.component.ts:79 {afficheH: 12, unavailable: true}
heure.component.ts:79 {afficheH: 13, unavailable: true}
heure.component.ts:79 {afficheH: 14, unavailable: true}
heure.component.ts:79 {afficheH: 15, unavailable: true}
heure.component.ts:79 {afficheH: 16, unavailable: true}
Это фрагмент кода вызова метода plageHoraire ():
isDayFree()//on vérifie si la journée est libre si true toute la journée dispo, si false on scan toutes les plage
{
//console.log(this._semaine.iBoucle + "==>" + this.debJ0H['debJour0H']);
this.debJ0H['debJour0H'] + this.trancheDeb * this.parTranche; //le début de la journée
this.finJour = this.debJ0H['debJour0H'] + this.trancheFin * this.parTranche; //on ajouter la fin de la journée pour toucheFin
//console.log("DEBUT J=>" + this.debJ0H['debJour0H'] + "FIN J =>" + finJour);
this._calendarService.dispoWbsRdv(this.debJ0H['debJour0H'], this.finJour).subscribe(data => {
//on récupère les rendez-vous s'il y en a, s'il y en a pas il sera filtré avec le ngIF = 0
console.log("array push plageHoraire---------------" + data);
//data = false;
//data = true la journée est libre, data = false la journée est pris afficher les plages d'horaire
data ? this.plageHoraire() : this.pushFalse();//data = false journée dispo on passe à la suivante, data = true il faut analyser la journée
//on affiche les plages d'horaires de la journée
// this._semaine.iBoucle++;//important d'ajouter cette incrémentation
}, (error) => {
});
}
Мы можем посмотреть метод подписки () Спасибо за ответ:)