节点回调数组不确定(空值)



i im使用节点js每隔几秒钟传递Watcher的数据来函数流播放存储ID.TS文件名的函数流中的fileNames在阵列中的效果很好,但是当我从我的另一个函数回调的时候,程序我从此数组中获得不确定的值。...我不知道如何编写它:

var stream_play = [];
watch('/tmp/1_.m3u8', function(event, name) {
    /* DEFINE - variables */
    var ts    = [];
    ts.push(1);
    streamplay(id, ts[ts.length-1]);
});
function streamplay(id, ts, callback) {
   /* CHECH - ts */
   if (ts !== 0) {
      console.log('adding id..'+id+'...with ts...'+ts)
      stream_play[id] = ts;
   } else {
      return callback(stream_play[id]);
   }
}

和这样的节点中的主函数呼叫:

 streamplay(stream, 0, function(response) {
       console.log('streaming ts file...'+response+'...to client...')                   
       res.write(fs.readFileSync('/tmp/'+response));
  })

我明白了:

streaming ts file...undefined...to client...

您的功能调用,streamplay(stream, 0, function(response) {最终会陷入streamplay中的其他条件。该行是return callback(stream_play[id]);stream_play数组是初始化但空的。访问JavaScript数组中的不存在的元素返回undefined

我找到了解决方案和另一个问题...使用回调的第一个示例现在像魅力一样工作。问题在于我拥有主流程和工作过程,并且在节点JS网站上阅读了掌握和工作过程之间无法在变量值之间共享的网站...因此,新问题是如何共享主和工作的过程变量,以便我可以从所有人的所有工作过程变量值访问主?

我正在对此进行聚类,因为我的服务器负载巨大和CPU聚类必须进行。

最新更新