Page 3 of 3

Re: Available COM interface

Posted: Fri Mar 30, 2018 10:09 pm
by Barry4679
Thanks for the JSON string, and for the general advice re debugging COM calls.

I can now get going with some confidence.
PetrCBR wrote: Your example does not work because you didn't returned value from getStringValue. app.getIniFile is asynchronous operation so you want to return value using runJSCode_callback (since MM5 2090).

Code: Select all

SDB.runJSCode("(function() { app.getIniFile().then(function(iniFileAccess) { runJSCode_callback(iniFileAccess.getStringValue('System','DBName'))   }); }); ()", True)
I would not have predicted that reading a value from an ini file would have been implemented as an async function ... nothing wrong with that of course, but in many cases one wouldn't want a program starting too much until the ini file had been validated.

Is there any way to predict, from the documentation, which calls have been implemented as async?

Re: Available COM interface

Posted: Mon Jul 02, 2018 12:41 pm
by PetrCBR
Typically almost all methods returning any list with data is async and you need call whenLoaded before use.
Like:

Code: Select all

app.player.getSongList().getTracklist().whenLoaded().then(function(list) { ... fully loaded list can be used here });