Meteor.WrapAsync 不返回值

2024-04-24

我一直在努力工作Meteor.WrapAsync我读过了Meteor wrapAsync 语法 https://stackoverflow.com/questions/26058205/meteor-wrapasync-syntax回答这个视频https://www.eventedmind.com/feed/meteor-meteor-wrapasync https://www.eventedmind.com/feed/meteor-meteor-wrapasync我只是不知道如何returnStripe 的电话回复。我在用着console.log打印步骤,我已经到达了第 4 号,这意味着,我正在到达stripe服务器并得到响应,但之后我不明白为什么console.log(5)它不打印。如果有人可以帮助我理解为什么它的wrapAsyn不返回条带回调?

    //this functions are part of an anonymous function and running in the server side of meteor
    stripe.charge = function (stripeToken) {
        // get a sync version of our API async func
        var strypeChargeSync = Meteor.wrapAsync(stripe.charge.process);

        // call the sync version of our API func with the parameters from the method call

        console.log("1");

        var response = strypeChargeSync(stripeToken);

        console.log("5" + response); ///// this never get print / log
        return response;
    }

    stripe.charge.process = function(stripeToken){
        var _stripe = StripeAPI(stripeKey);
        console.log("2");
        var charge = _stripe.charges.create({
            amount: 1000, // amount in cents, again
            currency: "cad",
            card: stripeToken.id,
            description: "paid@whatever"
        }, function(err, charge) {
            if (err && err.type === 'StripeCardError') {
                alert("Sorry we couldn't charge the money: " + err);
                //console.log(err);
            }else{
                console.log("4");
                //console.log(charge);
                return charge;
            }
        });
        console.log("3");
    }

//当前输出 1,2,3,4 但绝不输出 5 :(

EDIT

这就是我结束 Stripe 功能的方式,感谢您的支持

    var syncFunction = Meteor.wrapAsync(_stripe.charges.create, _stripe.charges);
    var response = syncFunction({
        amount: 1000, // amount in cents, again
        currency: "cad",
        card: stripeToken.id,
        description: "paid@whatever"
    });

您在这里包装了错误的函数,Meteor.wrapAsync将异步函数(这意味着通过回调将其结果传输给调用者的函数)转换为同步函数。

您传递给的函数Meteor.wrapAsync没有回调作为最终参数,您应该换行_stripe.charge.create.

stripe.charge = function (stripeToken) {
  var _stripe = StripeAPI(stripeToken);
  var stripeChargeSync = Meteor.wrapAsync(_stripe.charge.create,_.stripe.charge);
  var response = stripeChargeSync({
    amount: 1000, // amount in cents, again
    currency: "cad",
    card: stripeToken.id,
    description: "paid@whatever"
  });
  return response;
};

如果你想处理错误,你应该使用try/catch调用时阻塞stripe.charge.

try{
  stripe.charge(STRIPE_TOKEN);
}
catch(exception){
  console.log("Sorry we couldn't charge the money",exception);
}

我看到您正在使用记录错误alert,你想用Meteor.wrapAsync在客户端?Meteor.wrapAsync旨在在服务器上使用,因为提供同步执行所需的环境在 Node.js 中可用,而不是在浏览器中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Meteor.WrapAsync 不返回值 的相关文章

随机推荐

  • Xcode 永远快速索引

    我目前正在使用 swift 和 Xcode 6 Beta 3 开发一个 iOS 应用程序 到目前为止一切都很顺利 但现在随着我的项目的增长 Xcode 突然开始索引 并且一次又一次地这样做 使得 Xcode 几乎无法使用 我在网上搜索了类似
  • aws CLI 比使用 boto3 更快吗?

    我有存储在 s3 存储桶中的包 我需要读取每个包的元数据文件并将元数据传递给程序 我用了boto3 resource s3 在 python 中读取这些文件 该代码需要几分钟才能运行 如果我使用 aws clisync 它下载这些图元文件的
  • 更好的 boost asio Deadline_timer 示例

    我正在寻找一个更好的例子boost asio deadline timer 给出的例子总是会超时并调用close方法 我尝试打电话cancel 在计时器上但这会导致函数传递到async wait立即被呼叫 在异步 tcp 客户端中使用计时器
  • 使用 Ant 遍历目录

    假设我有一个包含以下路径的 PDF 文件集合 some path pdfs birds duck pdf some path pdfs birds goose pdf some path pdfs insects fly pdf some
  • 异步 REST API 生成警告

    我正在使用 Spring boot 应用程序 我有一个返回 Callable 的休息控制器 GetMapping fb roles Timed public Callable
  • 在 UIView 子类中调用drawRect

    我已经对 UIView 进行了子类化 并且实现了一个 drawRect 我基本上希望在设置 CGPoint 这是此 UIView 的一个属性 之后调用此 drawRect 我该怎么做呢 这是我的代码 id initWithCoder NSC
  • 根据请求创建 Hibernate-Session

    我刚刚启动了一个简单的 Java 测试项目 它使用 Hibernate 管理一些实体 并提供 REST 接口来操作这些对象并提供一些额外的业务逻辑 REST 接口是使用 RESTEasy 和 Jetty 创建的 到目前为止 一切工作正常 但
  • 如何在不循环的情况下找到小于一个数的最大二的幂? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 如何在不循
  • Python Sci-Kit 学习:多标签分类 ValueError:无法将字符串转换为浮点数:

    我正在尝试使用 scikit learn 0 17 进行多标签分类 我的数据看起来像 training Col1 Col2 asd dfgfg 1 2 3 poioi oiopiop 4 test Col1 asdas gwergwger
  • Android 版 Eclipse 中的“调试为...”

    我是一名 Android 菜鸟 正在 Eclipse Galileo 3 52 环境中自学调试 我有一个小的 hello world 应用程序 可以在模拟器中正常运行 所以现在我想通过设置断点 查看变量等来练习调试 但是 运行 gt 调试为
  • MATLAB:让audioplayer()在函数结束后继续播放

    我正在使用使用以下子函数的代码 function playTone duration toneFreq Generate a tone samplesPerSecond 44100 the bit rate of the tone y si
  • 未安装分发证书/私钥

    使用 Xcode 9 1 构建 iOS 应用程序后 我想将其存档并将其上传到 appStore 进行 beta 测试 但点击按钮后出现以下问题Upload to the App Store 并选择Automatically manage s
  • 在 mvc3 中公开实体或 DTO 以查看的最佳实践是什么?

    我创建了自己定制的大量架构 包括针对不同技术的 n 层 目前正在使用 asp net mvc 框架进行 n 层架构 问题是我在数据访问层有实体框架 由于实体将拥有所有关系元数据和导航属性 因此它变得更重 我觉得直接通过 mvc 视图公开这些
  • 在俄罗斯方块项目中添加其他形状。循环逻辑辅助

    我正在创建一个俄罗斯方块克隆作为个人项目 以帮助我更好地绘制图像 移动图像以及学习碰撞检测 一切都很顺利 但我对让程序在第一个停止移动时向框架添加新的方块形状背后的逻辑感到困惑 到目前为止 我使用随机数生成器随机创建四边形 并将其添加到框架
  • Owin Context 每个请求使用单个实例

    app CreatePerOwinContext DataContext Create 我有上面的行来创建一个数据上下文 当我启动一个新的 MVC 5 项目时 该代码随项目一起提供 同时 我使用 autofac 在我的依赖注册器中为每个请求
  • Dia:图表编辑器:盒子对象的限制?

    如标题所示 我尝试为 hte 3d 图形引擎 ogre3d 开发尽可能少的方案 问题是大图方案 Ogre Root 类需要相当多的从它下降的箭头 用关系箭头连接框的模型是它们只能通过边界周围的特定点 称为 关节 或其他东西 进入 退出 但现
  • 使用像 FILE* 这样的 C 字符串

    我有一个 C 函数 可以从 a 中读取字符流FILE 我怎样才能创建一个FILE 在这种情况下从字符串中 Edit 我认为我原来的帖子可能具有误导性 我想创建一个FILE 来自文字字符串值 因此结果FILE 会表现得好像某处确实有一个包含该
  • 可以在 JavaScript 中强制打印机设置(纸张尺寸)吗?

    我需要将网络应用程序中的页面打印到 8 x 4 索引卡上 IE 不会将打印设置从一份打印保存到下一份打印 那么有没有办法以编程方式强制打印设置 看看这个 CSS3 示例http www w3 org TR css3 page size ht
  • java.lang.IllegalArgumentException:找不到 id 0x7f0c007b 的视图

    我尝试启动一个应用程序项目 现在出现以下错误 我从旁边找到的答案中尝试了很多 但没有发现我的错误 这是输出 E AndroidRuntime FATAL EXCEPTION main Process de christian heinisc
  • Meteor.WrapAsync 不返回值

    我一直在努力工作Meteor WrapAsync我读过了Meteor wrapAsync 语法 https stackoverflow com questions 26058205 meteor wrapasync syntax回答这个视频