繁体   English   中英

跨回调函数共享数据

[英]sharing data across callback functions

我有以下两个回调函数。 我想知道是否可以在clipname和has_clip函数之间共享名称对象? 这是将liveapi用于ableton,但我肯定它只是一般的javascript。

function loadclips() {

  names = new LiveAPI(this.patcher, 1, clipname, “live_set tracks 0 clip_slots 1 clip”);
  names.property = “name”;

  slot = new LiveAPI(this.patcher, 1, has_clip, “live_set tracks 0 clip_slots 1”);
  slot.property = “has_clip”;

}

function clipname(args) {
  post(args);
}

function has_clip(args) {
  post(args);
}

我认为最安全的方法是从loadClips返回一个对象(似乎也很明智)。 确保在新变量上使用var 全球范围内的污染会引入难以发现的错误。

function loadclips() {

  var names = new LiveAPI(this.patcher, 1, clipname, “live_set tracks 0 clip_slots 1 clip”);
  names.property = “name”;

  var slot = new LiveAPI(this.patcher, 1, has_clip, “live_set tracks 0 clip_slots 1”);
  slot.property = “has_clip”;

  return {
    names: names,
    slot: slot
  }; 

}

然后将其传递到可能需要的任何函数中。

function clipname(args, namesAndSlots) {
  // namesAndSlots is available here
  post(args);
}

function has_clip(args, namesAndSlots) {
  // namesAndSlots is available here
  post(args);
}

现在您可以调用loadClips:

var namesAndClips = loadClips(); 

var clip = clipName('a', namesAndClips); 

无论如何,我认为这更接近您的需求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM