0
votes

Comment les méthodes météores rendent-elles des résultats?

J'utilise Meteor / React pour apprendre Facebook Graph API. Je souhaite accéder à la publication des utilisateurs sur la chronologie de Facebook et les afficher à l'écran. Comment cela peut-il être fait?

Avec la guidage de la solution fournie ici [ Comment effectuer des actions de FB communes à l'aide de Meteor? . J'ai essayé le code suivant: serveur.js xxx

code côté client: meteor.call ("SeePost", fonction (err, résultat) { if (err) console.log ("erreur", err); sinon console.log ("res", résultat); });

Je m'attends au résultat affiché dans la console latérale du client, car je souhaite montrer aux utilisateurs les messages sur sa chronologie de son / ER, mais je reçois la sortie suivante: Res, indéfini


0 commentaires

3 Réponses :


1
votes

Vous pouvez le faire en utilisant attendre code> et météor.callasync code>

Le code client attend que l'appel à compléter et vous donne les données renvoyées p >

const result = await Meteor.callAsync("seePost");


1 commentaires

La fonction qu'il apparaît doit être déclarée avec async , telle que async fonction mysculction ()



1
votes

Si vous utilisez des fibres / futur, vous devez retourner quelque chose avec "futur". xxx

Cela reviendra quelque chose dans le rappel de l'appel du client.


0 commentaires

1
votes

Essayez ce code lorsque vous utilisez des fibres, vous devez "attendre" pour la réponse

Meteor.methods({
  'seePost': function () {
    var graph = Npm.require('fbgraph');
    if (Meteor.user().services.facebook.accessToken) {
      graph.setAccessToken(Meteor.user().services.facebook.accessToken);
      var future = new Future();
      var onComplete = future.resolver();
      graph.get('/me/feed', function (err, result) {
        console.log(result);
        if (err) {
          return future.return(false);
        } else {
          return future.return(result);
        }
      })
      return future.wait();
    }
    return false;
  }
});


0 commentaires