0
votes

Obtenir la demande avec boucle

Il y avait un tel problème.

J'essaie de faire un certain nombre de demandes d'accès à Wikipedia API à l'aide d'un cycle. Essayant de le faire avec la fonction getallinfo ()

articles.components.ts xxx

articles.Service.ts xxx

un tableau this.Altitales peut consister en un certain nombre de lignes. par exemple : ceci.Alttitles = ['Naumen', 'Naumen DMS']

Je m'attends à ce que le tableau the.Allarray < / Code> sera bidimensionnel et contiennent des tableaux composés de lignes avec des données pour chaque requête. par exemple : xxx

mais en fait, il s'avère que chaque élément d'une matrice bidimensionnelle est identique. par exemple : xxx

pourquoi et comment le réparer?


2 commentaires

Les demandes http sont asynchrones. Vous devez mettre à jour le tableau dans votre abonnement.


@Arcteezzy Bonjour, c'est moi encore moi. Tu m'as m'aidé beaucoup hier: D Pourriez-vous me dire exactement quoi écrire?


3 Réponses :


0
votes

Vous pouvez utiliser Combinelatst : https: // www .Learnrxjs.io / opérateurs / combinaison / combinaison de combinaison

Premièrement, collectez-vous à combiner des observables (mais sans vous les abonner à eux), puis combinez-les avec Combinelatst et obtenez la réponse En tant que tableau et itérer sur elle. xxx


0 commentaires

0
votes

Peut-être, j'ai mal compris la question, mais vous pouvez obtenir des pages avec des titres particuliers, en corrigeant votre recherche de rechercheery code> (en utilisant des séparateurs alternatifs pour les titres) et supprimez-vous de pour boucle code >::

const pages = {
  "755288": {
    "pageid": 755288,
    "ns": 0,
    "title": "Spring",
    "contentmodel": "wikitext",
    "pagelanguage": "ru",
    "pagelanguagehtmlcode": "ru",
    "pagelanguagedir": "ltr",
    "touched": "2019-01-26T07:25:08Z",
    "lastrevid": 84434967,
    "length": 773
  },
  "92586": {
    "pageid": 92586,
    "ns": 0,
    "title": "Atom",
    "contentmodel": "wikitext",
    "pagelanguage": "ru",
    "pagelanguagehtmlcode": "ru",
    "pagelanguagedir": "ltr",
    "touched": "2019-01-25T00:45:06Z",
    "lastrevid": 95248014,
    "length": 4508
  },
};
 
const arr = Object.keys(pages).reduce((acc, val, index) => {
  acc[index] = [pages[val].touched, pages[val].length];
  return acc;
}, []);

console.log(arr);


2 commentaires

Oui, ça marche, mais à cause de cela, mon Problème passé apparaît


@Ila Nizovcev J'ai ajouté le traitement du résultat, vous aurez donc une matrice multidimensionnelle dans une demande



0
votes

Essayez ceci,

getAllInfo() {
    for (const title of this.allTitles) {
      this.articlesServices.getArticleInformation(ArticlesComponent.getUrlInformation(title))
        .subscribe(
          (data: ArticleInformation) => {
            this.articlesInfo = {
                ...data,
                query: { pages: [Object.values(data.query.pages)[0]]}
            }
            this.allArray.push([this.articlesInfo.query.pages[0].touched,this.articlesInfo.query.pages[0].length]);
          } 
        );

    }
  }


1 commentaires

Merci beaucoup mon ami! Je t'aime, tu m'as sauvé la deuxième fois.