【发布时间】:2018-01-25 13:25:27
【问题描述】:
是否可以承诺两个进程之间的通信?
比如,发送一条消息,然后等到收到响应,然后做某事。
我已经编写了代码,但我不知道如何解决与已发送消息相关的承诺,因为响应消息是在不同的函数中接收的,超出了承诺范围:|
var worker, job_id, promises = [];
worker = child_process.fork(__dirname + '/w.js');
worker.on('message', (message) => {
let job_id = message.job_id;
// how to resolve promises[job_id] ??
});
function send(data){
job_id++;
data.job_id = job_id;
worker.send(data);
var promise = new Promise((resolve, reject) => {
// how to resolve this in the message handler?
});
promises[job_id] = promise;
}
这个函数应该像
send(data).then((response_message) => {
console.log(response_message);
});
【问题讨论】:
标签: javascript node.js electron es6-promise child-process