I wrote a plugin that is working fine. But when I try to refactor some code into functions the same functionality stops to function. It seems that any code I place into nested async functions never return a value. I also tried the “then” syntax.
Is this a known issue and how do I resolve this?
In the example below async function updateElements()
is an async function nested in a function that is already async. Any await figma....
does not return (so it is not just this function). This sin’t really covered in the documentation I read, for example Asynchronous Tasks | Plugin API
async function updateElements() {
console.log('This line appears in console, indicating the function is executed');
const colorVariable = await figma.variables.getVariableByIdAsync('VariableID:2:492');
console.log('Never get\'s here');
}
figma.ui.onmessage = async (msg: { type: string, background: string, color: string }) => {
if (msg.type === 'update-elements') {
const colorVariable = await figma.variables.getVariableByIdAsync('VariableID:2:492');//this works
console.log(colorVariable); // Contents are displayed in console
await updateElements();
}
}