javascript - 带有 node.js promise 的 RPC

标签 javascript node.js websocket rpc promise

关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。












我们不允许提出有关书籍、工具、软件库等建议的问题。您可以编辑问题,以便可以用事实和引用来回答它。


1年前关闭。







Improve this question




是否有任何适用于 Promise 的 RPC 模块?

在服务器上,我有返回 promise 的函数。我想公开它们以供浏览器客户端调用 websockts 或后备。我找到了一些 RPC 库,例如 dnode,但他们希望回调作为参数。

我想要这样的东西:

服务器:

rpc.expose({
超时:函数(时间){
var d = Q.defer();
设置超时(函数(){
d.resolve();
}, 时间);
返回 d.promise;
}
});

客户:

rpc.timeout(2000).then(function() {
console.log('完成');
});

最佳答案

我编写了一个名为 Wildcard API 的 RPC 实现。这可以让你做到这一点:

// Node.js server

const { server } = require('@wildcard-api/server');

// We define a `timeout` function on the server
server.timeout = function({seconds}) {
  await sleep({seconds});
};

function sleep({seconds}) {
  return new Promise(resolve => setTimeout(resolve, seconds * 1000));
}
// Browser

import { server } from '@wildcard-api/client';

(async () => {
  // Wildcard makes our `timeout` function available in the browser
  await server.timeout({seconds: 2});
  // 2 seconds later...
  console.log('done');
})();

关于javascript - 带有 node.js promise 的 RPC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21708297/

相关文章:

javascript - 如何使用 Material UI 在滚动时使 AppBar 和表格的标题粘在同一页面上(因此彼此堆叠)

javascript - 在 ionic 弹出窗口上传递值,但获取 MouseEvent

javascript - 发送查看......来自两个不同数据库的信息

javascript - jQuery 递归淡入功能

javascript - AngularJS 观察对象数组中的对象属性

node.js - 有什么方法可以减少在 nodejs 中获取数据和缓存的并发请求量?

javascript - 为什么在这种情况下我会收到未处理的 promise 拒绝?

java - 如何将二进制消息作为输入流进行处理?

javascript - 网络套接字 : String and Blob in single send message

c# - 带有 Javascript 客户端的 WCF 自托管 WebSocket 服务