Asynchronous 从meteor异步函数客户端传递数据

Asynchronous 从meteor异步函数客户端传递数据,asynchronous,meteor,client,Asynchronous,Meteor,Client,我试图将数据从异步函数发送到html页面。我已经成功地使用了Meteor的wrapAsync,我可以在控制台中记录我想要的数据数组。但是,返回数据时,数据不会传播到html。当我将数据数组从控制台复制粘贴到body.js文件中时,一切正常。因此,我是如何返回有缺陷的对象的。任何提示谢谢 Body.js文件 import { Meteor } from 'meteor/meteor'; import { Template } from 'meteor/templating'; import {

我试图将数据从异步函数发送到html页面。我已经成功地使用了Meteor的wrapAsync,我可以在控制台中记录我想要的数据数组。但是,返回数据时,数据不会传播到html。当我将数据数组从控制台复制粘贴到body.js文件中时,一切正常。因此,我是如何返回有缺陷的对象的。任何提示谢谢

Body.js文件

import { Meteor } from 'meteor/meteor';

import { Template } from 'meteor/templating';

import { multichainuser } from '../api/permissions.js';

import './body.html';

Template.body.helpers({
  permissions: function(){
    var information = {};
    Meteor.call('mListPermissions', function(err, result){
      console.log(result);
      return result;     
    });
  }, 
});
body.html:

<body>
  <div class="container">
    <header>
      <h1>Permissions</h1>
    </header>

    <ul>
      {{#each permissions}}
        {{> permission}}
      {{/each}}
    </ul>
  </div>
</body>

<template name="permission">
  <li>{{address}}</li>
  <li>{{type}}</li>
</template>

有几种方法可以解决这个问题。请查看反应性方法包:

另一种选择是使用反应式变量。在模板的oncreated中创建一个被动变量。然后调用方法whos callback更新被动变量。在helper中,您只需从被动变量获取值

import { Meteor } from 'meteor/meteor';

var multichainuser = require("multichain-node");

Meteor.methods({
  mListPermissions: function() {
    var lPSync=Meteor.wrapAsync(multichainuser.listPermissions, multichainuser);
    var result = lPSync({});
    return result;
  }
});