gpt4 book ai didi

node.js - Node : implementing a one-time "channel" using promises

转载 作者:搜寻专家 更新时间:2023-11-01 00:48:11 24 4
gpt4 key购买 nike

我想让一个异步进程等待另一个异步进程向它发送信号。 (一次就够了)

Go ,您可以在两个进程之间创建 channel 。

def foo1(c chan int) {
// do some stuff
c <- 1
}

def foo2(c chan int) {
<-c
// do stuff later
}

基本上是<-c意思是,“等到有人把东西放在 c 中”。 c <- 1表示“将 1 放入 c”。 (假设相同的对象 c 被传递给两个函数)。

我想用 node.js 实现类似的东西。我的想法是创建一个 promise ,并让一个流程解决它,另一个流程解决 await .像这样的东西:

function foo1(promise) {
// do some stuff
promise.resolve();
}

function foo2(promise) {
await promise;
// do stuff later
}

我怎样才能做这样的事情?

最佳答案

您可以使用“https://www.npmjs.com/package/smem”在异步进程之间发送数据。

// Import.
const SMem = require('smem');

// Create shared memory instance.
const defaultSMem = new SMem();

// Get value async.
(async () => {
console.log(await defaultSMem.get('test-key'));
})();

// Set value after 2 seconds.
setTimeout(() => {
defaultSMem.set('test-key', 'test-value');
}, 2000);

关于node.js - Node : implementing a one-time "channel" using promises,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56115072/

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