javascript - 避免回调 hell 。 Meteor.call promise

标签 javascript meteor promise

我一直在努力避免 Meteor 中的回调 hell ,但首先,我将解释我的问题:

我在服务器中声明了一些 Meteor 方法,并在客户端中使用 Meteor.call 调用它们,但主要问题是我有大量的回调使得调试成为一项非常困难的任务(以及维护...)。如果我处理一个“小”项目,这不会成为问题,但我正在构建一个大项目并且我计划使用 promise ,但令我惊讶的是......它不起作用,因为 Meteor.call 只接受回调。

我在这里和 Meteor 论坛上阅读了很多帖子,但没有一个能帮助我……有什么解决办法吗? (我试过 deanius:promise 包还是一样...)

编辑:使用 Meteor 1.4.2

最佳答案

您可以为此使用bluebird 模块。 promisifyAll 允许您将对象上的所有函数转换为使用 promises 而不是回调,因此您可以使用 Meteor.callAsync 而不是使用带有回调的 Meteor.call 作为 promise 。

有回调:

Meteor.call(..., function(...) {
    // ...
});

promise :

Meteor.callAsync(...).then(function(...) {
    // ...
});

http://bluebirdjs.com/docs/api/promise.promisifyall.html

关于javascript - 避免回调 hell 。 Meteor.call promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40503604/

相关文章:

javascript - 如何拒绝 then 中的 Promise

meteor Js : How to place javascript files at the end of body in layout

javascript - 单击 60 秒后禁用按钮,即使浏览器使用 Meteor 刷新

javascript - 无法处理其他 promise 中的 promise 失败

javascript - 如何使 this 引用函数中的类?

javascript - 如何在 Fiber 中运行 Meteor insert

javascript - 如何解决 for 循环中的所有 promise ?

javascript - 如何使用 Gamepad API 检测按钮按下情况?

c# - 如何使用 ASP.NET MVC 和 Knockout JS 将真/假值绑定(bind)到复选框

javascript - 使用 Webpack 在 TypeScript React 应用程序中导入 SVG