@exodus/await-proxy
代理一个模块,并延迟所有模块的调用,直到指定的承诺得到解决.
使用量
这是桌面 RPC 使用的例子 :
import awaitProxy from '@exodus/await-proxy'
import { createClient } from '#/electron-rpc-broadcast'
import Handshake from '#/handshake'
const handshake = new Handshake({
sendMessage: (message) => ipc.targeted('core', 'handshake', message),
attachListener: (listener) => ipc.on('handshake', listener),
})
// calls to some-module will be queued until the RPC server is initialized (as indicated by the handshake)
export default awaitProxy({
object: createClient('core', 'some-module'),
delayUntil: handshake.awaitDone(),
})
API 密码
awaitProxy({ object, delayUntil, synchronousMethods })
object是要代理的模块( 仅应该有函数/ 方法; 没有属性)delayUntil这是Promise等待,然后调用方法objectsynchronousMethods是一个可选的字符串数组,在object是同步的,但以同步方法返回对象。 调用同步方法将返回一个代理服务器, 并带有等待的同步函数promise在实际执行之前。 基本同步方法将仅在promise决定. 编号