我对nodejs很新,并且卡在一个函数填充数组而另一个函数从中读取数据的位置。
是否有任何简单的构造来同步它。
代码看起来像下面
let arr = [];
let prod = function() {
arr.push('test');
};
let consume = function() {
process(arr.pop());
};
我确实找到了一些复杂的方法:(
非常感谢你的帮助...☺️
答案 0 :(得分:1)
通过同步你可能意味着应用程序一侧的推送应该触发另一方的弹出。这可以通过使用NodeJS Events模块的非常简单的事件驱动方法来实现。
但是,在简单的情况下,您可以尝试使用中间对象的另一种方法来执行数组操作的封装,并利用提供的回调来实现可观察的行为。
// Using the Modular pattern to make some processor
// which has 2 public methods and private array storage
const processor = () => {
const storage = [];
// Consume takes value and another function
// that is the passed to the produce method
const consume = (value, cb) => {
if (value) {
storage.push(value);
produce(cb);
}
};
// Pops the value from storage and
// passes it to a callback function
const produce = (cb) => {
cb(storage.pop());
};
return { consume, produce };
};
// Usage
processor().consume(13, (value) => {
console.log(value);
});
这真的是一个noop的例子,但我认为这应该创建一个基本的理解如何构建"同步"您已经提到的机制,使用观察者行为和基本的JavaScript回调。
答案 1 :(得分:0)
您可以使用回调在两个函数之间共享数据
function prod(array) {
array.push('test1')
}
function consume() {
prod(function (array) {
console.log(array)
})
}