gpt4 book ai didi

javascript - 如何在 Wakanda 中使用 Node Worker

转载 作者:行者123 更新时间:2023-12-01 03:07:01 26 4
gpt4 key购买 nike

到目前为止,对我来说, Node 工作线程的概念一直是听起来很有趣的事情之一,有一天我会发现的。

那一天已经到来,我正在寻求一些帮助。

我需要调用网络服务,然后处理返回的数据。我可以使用 XMLHttpRequest 调用该服务,但随后我必须从中获取有用的数据。

有一个很好的 Node 模块,它既可以调用服务,又可以通过一次调用以有用的形式返回数据。

我可以设置 Node Worker(在 Wakanda)来执行此操作并验证它是否有效。

我的问题是处理代理中的异步调用。

对 Node 模块的调用如下所示:

myModule.getData(param, (err, data) => {
// data is an object containing everything I want.
// if I get data I want to return it to the proxy
// if I get an err I want to return the error to the proxy
});

所以我的包装器代码看起来像这样:

function doSomething(param){

// call proxy with param
// wait for result
// return result

}

这听起来像是我应该知道该怎么做的事情。然而,我认为我正在与太多新事物作斗争,让自己完全困惑。

PS:我确实尝试过 Threadify,但无法弄清楚如何让工作线程返回收到的错误。

我非常感谢这里的任何帮助或指示。

最佳答案

如果我正确理解您的问题,则异步调用完成后您无法从函数返回值。您需要在 myModule.getData 回调中处理数据。

如果您希望在调用函数(如 doSomething)中处理它,您可以使用 Promise 来“返回”一个值。

function myProxy(param) {
return new Promise((resolve, reject) => {
myModule.getData(param, (err, data) => {
if (!err) { // or however you determine an error occurred.
resolve(data); // if I get data I want to return it to the proxy
} else {
reject(err); // if I get an err I want to return the error to the proxy
}
});
});
}

function doSomething(param){
myProxy(param).then(data => {
// Handle the data here.
}).catch(err => {
// Handle the error here.
});
}

关于javascript - 如何在 Wakanda 中使用 Node Worker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46107158/

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