簡體   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