gpt4 book ai didi

node.js - 使 Node.js REPL 的异步函数同步

转载 作者:太空宇宙 更新时间:2023-11-04 02:25:57 25 4
gpt4 key购买 nike

我有一个连接到远程 API 的库:

class Client(access_token) {
void put(key, value, callback);
void get(key, callback);
}

我想设置一个 Node.js REPL 以便轻松尝试:

var repl = require('repl');
var r = repl.start('> ');
r.context.client = new Client(...);

问题是异步 API 对于 REPL 来说并不方便。我更喜欢一种同步的,它通过返回值产生结果并用异常发出错误信号。像这样的东西:

class ReplClient(access_token) {
void put(key, value); // throws NetworkError
string get(key); // throws NetworkError
}

有没有办法使用Client实现ReplClient?我希望避免标准 Node.js 包以外的任何依赖项。

最佳答案

您可以利用wait-for-stuff的魔力同步等待东西.

根据您的示例规范:

const wait = require('wait-for-stuff')

class ReplClient {
constructor(access_token) {
this.client = new Client(access_token)
}
put(key, value) {
return checkErr(wait.for.promise(this.client.put(key, value)))
}
get(key) {
return checkErr(wait.for.promise(this.client.get(key)))
}
}

const checkErr = (maybeErr) => {
if (maybeErr instanceof Error) {
throw maybeErr
} else {
return maybeErr
}
}

关于node.js - 使 Node.js REPL 的异步函数同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30476726/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com