关闭。这个问题不符合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/