2016-10-25 1 views
0

Dies muss zuvor gefragt worden, ich bin nur nicht sicher, was genau zu suchen, kann ich die Frage löschen, wenn jemand eine Verknüpfung zu einem Duplikat! Vielen Dank.Übergeben von zusätzlichen Parametern an eine JavaScript-Funktion, die eine externe API verwendet

Wenn ich eine JavaScript-Funktion habe, die eine externe API aufruft, wie kann ich andere Parameter übergeben, bevor die Daten zurückgegeben werden? Z.B. Verwendung von Google Apps, gibt die Aufgaben api eine Liste der Aufgaben des Benutzers wie folgt:

google.script.run 
    .withSuccessHandler(showTasks) // showTasks callback function 
    .getTasks(taskListId); 
} 

/* Show the returned tasks on the page. */ 
function showTasks(tasks) { 
    // tasks is now an object of tasks returned by google 
    ... 

Allerdings möchte ich dies tun:

var tasksListNumber = 1; 

google.script.run 
    .withSuccessHandler(showTasks(null, tasksListNumber)) // showTasks callback function 
    .getTasks(taskListId); 
} 

/* Show the returned tasks on the page. */ 
function showTasks(tasks, tasksListNumber) { 
    // tasks is now an object of tasks returned by google 
    // tasksListNumber is 1 
    ... 

mit sich bringt die Lösung irgendwie die bind-Funktion?

+1

In das Snippet, das Sie gepostet haben, können Sie einfach auf 'taskListNumber' vom Hauptteil von' showTasks' zugreifen (es ist nicht lokal, aber immer noch sichtbar). Ist Ihr tatsächlicher Anwendungsfall stärker involviert? –

+0

ein wenig, weil die Google-Funktion nur ein Beispiel ist, das verwendet wird, werden auch Ereignisse verwendet: '$ ('# tasklist'). Bind ('change', loadTasks);' muss '$ ('# tasklist1 sein ') .bind (' change ', loadTasks (taskListNumber)); 'too. Ich denke, der Zugriff auf die von Ihnen vorgeschlagene Weise ist der beste Weg, oder etwas für jedes Szenario benutzerdefiniert schreiben – timhc22

+0

Ich denke, den Zugriff als Variable der übergeordneten Funktion ist der beste Weg: http://stackoverflow.com/questions/3946177/javascript- Ist-es-möglich-eine-Variable-in-Callback-Funktion-das-ist-a-übergeben – timhc22

Antwort

1

Nicht verwendet Google Aps api. Aber es docs lesen ->The server's return value is passed to the function as the first argument, and the user object (if any) is passed as a second argument. mir so etwas wie ->

google.script.run 
 
    .withUserObject(tasksListNumber) 
 
    .withSuccessHandler(showTasks) // showTasks callback function 
 
    .getTasks(taskListId); 
 
}

In Ihrem Code ausführen Ihre grundsätzlich showTasks(null, tasksListNumber) sofort.

Verwandte Themen