Meteor:观察回调中的 Meteor.call() 不执行

2023-12-14

是否有可能从内部调用服务器方法observeMeteor 中的回调?

我整理了一个重现该问题的示例,即Meteor.call()从回调中调用myCursor.observe()不执行。当从观察回调中调用时,Meteor.method它本身也不会回调错误,它只是返回Undefined.

别再无视我了Meteor.call():) 非常感谢任何帮助!

观察.js

items=new Meteor.Collection("Items");

if (Meteor.isClient) {
    Meteor.subscribe("Items");
    Meteor.startup(function(){
        itemsCursor=items.find();
        itemsHandle=itemsCursor.observe({
            added : function(doc){
                console.log("added "+doc.text);
                Meteor.call('aMethod',doc.text,function(e,r){
                    if(e){
                        console.log("error from server: "+e);
                    }else{
                        console.log("response from server: "+r);
                    }
                });
            },
            removed : function(doc){
                console.log("removed "+doc.text);
                Meteor.call('aMethod',doc.text,function(e,r){
                    if(e){
                        console.log("error from server: "+e);
                    }else{
                        console.log("response from server: "+r);
                    }
                });
            }
        });
    });

    Template.test.items=function(){
        return items.find();
    }
    Template.test.events({
        'click #add':function(){
            items.insert({"text":"Timestamp: "+(new Date().getTime())});
        },
        'click #remove':function(){
            items.remove(items.findOne()._id);
        }
    });
}

if (Meteor.isServer) {
    Meteor.publish("Items",function(){
        return items.find();
    });
    items.allow({
        insert : function(userId,doc){
            return true;
        },
        update : function(userId,doc){
            return true;
        },
        remove : function(userId,doc){
            return true;
        }
    });
    Meteor.methods({
        aMethod:function(text){
            console.log("Got it! "+text);
            return "Got it! "+text;
        }
    });
}

观察.html

<head>
  <title>observe</title>
</head>

<body>
  {{> test}}
</body>

<template name="test">
  <button id="add">add item</button>
  <button id="remove">remove item</button>
    <ol>
        {{#each items}}
        <li>{{text}}</li>
        {{/each}}
    </ol>
</template>

这可能是一个已知问题,我不确定,因为我自己没有尝试过,但看起来可能有解决方法(请参阅https://github.com/meteor/meteor/issues/907)

添加您的Meteor.call进入瞬时 setTimeout 回调:

added: function(doc) {
    console.log("added "+doc.text);
    setTimeout(function() {
        Meteor.call('aMethod',doc.text,function(e,r){
            if(e){
                console.log("error from server: "+e);
            }else{
                console.log("response from server: "+r);
            }
        });
    },0);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Meteor:观察回调中的 Meteor.call() 不执行 的相关文章

随机推荐

  • 我们应该使用 Cassandra NoSQL 计数器还是 LWT 来自动增量整数键生成?

    我们想要在 Cassandra 中生成自动增量整数键 这在传统数据库中是微不足道的任务 但在 Cassandra 中却并不复杂 我已经尝试过可以使用 Counter 数据类型来增加 value value 1 并尝试了 LWT UPDATE
  • 使用 Swift 检查互联网连接

    当我尝试检查 iPhone 上的互联网连接时 出现了一堆错误 谁能帮我解决这个问题吗 代码 import Foundation import SystemConfiguration public class Reachability cla
  • 在 jQuery dataTables 中选定的行之后添加一行

    数据表定义为 var oTable table1 dataTable aaData John ABC 90000 Doe XYZ 100000 Alan PQR 110000 aoColumns sTitle Name sTitle Com
  • php 可以只允许从一个域进行 cors 访问

    我创建了一个 PHP REST API 应用程序 我需要使用 API 从另一个域访问该应用程序 是否可以在 Header 中指定 cors 域
  • iPhone - 获取 UIView 在整个 UIWindow 中的位置

    的位置UIView显然可以由下式确定view center or view frame等等 但这仅返回UIView与其直接监督有关 我需要确定的位置UIView在整个 320x480 坐标系中 例如 如果UIView是在一个UITableV
  • C 中非原子类型的原子操作是原子的吗?

    C17 标准指定了原子操作列表 例如 对类型为原子的对象进行原子读 写 修改操作A标准中定义为 C atomic fetch add volatile A object M operand 但我们可以打电话atomic fetch add对
  • python字典到具有多列的pandas数据框

    我有以下 python 字典 d data Counter important 2 very 3 analytics Counter boring 5 sleep 3 我想将其保存为以下格式的 pandas 数据框 category wor
  • Objective-c 上的指针

    据我了解 如果我错了 请纠正我 int x count 10 int hello hello count x hello 这里变量 x 和 count 被声明为整数类型 此外 变量 count 的值被指定为 10 hello 是一个指向整数
  • R将布局对象的网格单位转换为原生

    我的问题有点与使用 R 中的网格将单位从 npc 转换为本地单位 我试图找出 ggplot2 对象中某些绘图元素的位置 轴 主图等 我找到了以下代码 rm list ls library ggplot2 library grid libra
  • 多次调用setcontentview?

    如果我的布局相同但资源发生变化 我可以多次调用 setcontentview 吗 例如 如果图像在 2 个 imageview 小部件中交换 这实际上是我的应用程序中发生的所有情况 您可以多次切换 setContentView 然而 我在实
  • 无法读取 servlet 中的表单字段[重复]

    这个问题在这里已经有答案了 嘿 我对 servlet 环境很陌生 在这里 我尝试将一个表单发布到我的 servlet 如下所示
  • 如果图像被裁剪/调整大小,Camera Intrinsics 将如何变化?

    我有一个来自 Realsense 相机的录制相机 ROS 包文件 所记录设置的相机内部结构已经知道 图像的初始分辨率为848 480 由于相机视场中有一些视觉障碍 我想裁剪掉图像的顶部 这样我正在使用的视觉 SLAM 算法就不会检测到它 由
  • VBA一次性删除所有幻灯片

    我找到了一段代码 可以一张一张地删除除活动幻灯片 索引1 之外的所有ppt幻灯片 但是 任何人都可以帮助我重写这段代码 以便一键操作该代码 我不想循环播放每张幻灯片 因为大约有 300 张幻灯片需要删除 这是我的代码 Sub Deletes
  • 如何使用smack 4.1发送信息查询包到xmpp服务器?

    如何向xmpp服务器发送信息查询包 换句话说 如何向服务器发送 来查询一些信息
  • 同时读取多个文件是个好主意吗?

    我们公司的一台服务器有32个CPU 我们有1000 个非常大的文件需要处理 我不确定同时读取 32 个文件是否是一个好主意 这样所有内核也可以同时执行独立计算 谁能简单解释一下硬盘的工作原理 如果同时读取32个文件 读取速度会不会变慢 谢谢
  • 如何获取构造函数的代码引用?

    我有以下代码 my coderef MyModule MyTool gt new 但当我尝试时 coderef gt 我收到错误 Not a CODE reference 如何引用构造函数 不调用它 并稍后运行引用的代码 The 是标量解引
  • 使用 SortDescriptor AND Predicate 对 NSMutableArray 进行排序可能吗?

    我有一个 Restaurant 类型的数组 其中有一个 Rating 的 NSSet 评级有一个 ID 和一个值 我想按 ID 为 01 的评级从高到低对餐厅数组进行排序 类似于下面的内容 但是如何在originalArray上一起使用谓词
  • 当输入无效值时,用户必须在 C 中重试新值

    对于我的硬件分配 我必须创建一个程序 根据用户输入输出基于星号的三角形 我已经让我的程序正常工作 只要用户输入一个整数 就会输出正确的三角形 但我的问题是 当输入无效值时 如何使用户必须重新尝试提交值 我查看了论坛 但没有找到类似的问题 i
  • 在摘要页面上显示用户输入

    我在产品旁边有几个数量框 以便用户可以输入他们想要的某种产品的数量 该设置使用 Jquery 逐步进行 第一步由复选框组成 第二步由数量输入组成 我需要帮助 最后一步显示已选择的内容 全部提交收到电子邮件给我 带复选框的第 1 步已完成 在
  • Meteor:观察回调中的 Meteor.call() 不执行

    是否有可能从内部调用服务器方法observeMeteor 中的回调 我整理了一个重现该问题的示例 即Meteor call 从回调中调用myCursor observe 不执行 当从观察回调中调用时 Meteor method它本身也不会回