javascript - 子函数运行完毕返回父函数
问题描述
我目前面临这个问题,我无法让父函数等待子函数检索一些数据,然后让父函数返回数据。
在我的情况下,子函数是该 on
方法的回调。
const parent = () => {
...
let value;
child.on('data', (data) => value = data);
return value;
}
我认为这里发生的是父函数value
在它得到任何分配之前返回,因此value
等于undefined
. 我确信我正在接收所需的数据,因为当我data
在回调中登录时,我得到了预期的输出。
所以我想做的就是让父函数返回子函数接收到的数据。我不完全确定如何从这里开始。
我非常感谢我能得到的任何帮助。
解决方案
一个快速的解决方案是将您的更改parent
function
为promise
. 这样,您可以等待内部函数完成并返回结果
const parent (child) => {
return new Promise( (resolve, reject) => {
child.on('data', data => { resolve(data); });
});
};
// Usage
function childFunction () {
// ...
return 'something';
}
parent(childFunction).then( val => console.log(val) );
推荐阅读
- python - discord bot python 我想从 ID 中得到一个昵称
- javascript - Puppeteer:没有 id 时如何选择单选按钮列表
- php - 检查数组中的所有值是否都存在于数据库列中
- python - DefaultCPUAllocator:没有足够的内存:你试图分配 364742208 字节。购买新内存
- javascript - 如何在javascript中将文本文件转换为json格式
- delphi - Delphi TDBGrid 在标签按下时插入新记录
- piranha-cms - Piranha 9.0.1 - 自定义块组:无法在内容管理器 UI 中添加项目
- r - 循环中的反应
- r - 如何根据R中某列中的变量从数据框中提取数据
- embedded-linux - qemu network not working needed for tftp booting