Javascript 在子函数完成运行后返回父函数
我目前面临的问题是,我不能让父函数等待子函数检索一些数据,然后让父函数返回数据 在我的例子中,子函数是Javascript 在子函数完成运行后返回父函数,javascript,node.js,Javascript,Node.js,我目前面临的问题是,我不能让父函数等待子函数检索一些数据,然后让父函数返回数据 在我的例子中,子函数是on方法的回调 const parent = () => { ... let value; child.on('data', (data) => value = data); return value; } 我认为这里发生的是父函数在得到任何赋值之前返回值,从而使值等于未定义的。我确信我收到了所需的数据,因为当我在回调中记录data时,我得到了预期的输出 我
on
方法的回调
const parent = () => {
...
let value;
child.on('data', (data) => value = data);
return value;
}
我认为这里发生的是父函数在得到任何赋值之前返回值
,从而使值
等于未定义的
。我确信我收到了所需的数据,因为当我在回调中记录data
时,我得到了预期的输出
我想做的就是让父函数返回子函数接收到的数据。我不完全确定从这里该怎么办
我非常感谢能得到的任何帮助。一个快速的解决办法是将您的
家长功能
更改为承诺
。这样,您可以等待内部函数完成并返回结果
const父(子)=>{
返回新承诺((解决、拒绝)=>{
on('data',data=>{resolve(data);});
});
};
//用法
函数childFunction(){
// ...
返回“某物”;
}
父(childFunction).then(val=>console.log(val))
一个快速解决方案是将您的父功能
更改为承诺
。这样,您可以等待内部函数完成并返回结果
const父(子)=>{
返回新承诺((解决、拒绝)=>{
on('data',data=>{resolve(data);});
});
};
//用法
函数childFunction(){
// ...
返回“某物”;
}
父(childFunction).then(val=>console.log(val))代码>这是否回答了您的问题?Oscar,mwilson提供了解决方案。承诺是通往这里的道路。这回答了你的问题吗?Oscar,mwilson提供了解决方案。承诺是实现这一目标的途径。我现在花时间真正理解了承诺是如何起作用的,而且效果很好。非常感谢。是的,他们很棒。您可以在没有承诺的情况下执行此操作,但基本上必须传入调用函数。承诺更值得一看。我现在花时间真正理解了承诺是如何起作用的,而且效果很好。非常感谢。是的,他们很棒。您可以在没有承诺的情况下执行此操作,但基本上必须传入调用函数。承诺更值得一看。