How to make async call to the figma.getNodeByIdAsync() function?

Greetings from a newbie!

I cannot get a call to Figma.getNodeByIdAsync() to work. Could anyone please tell me what I am doing wrong? I have searched this forum and referred to a sample plugin go-to that uses this function, but I am still stuck.

Below is my simplified code just for checking this functionality. When I run it as part of the plugin, console logs #1 and #2 are generated but not #3, and the console returns to the ‘>’ prompt.

Thank you!

Figma_plugin_issue

Is there a call to figma.closePlugin() after the 100th line?

Thanks, yes, there is. (I have some commented-out code sitting around, so I didn’t post the full program.)

The commented lines should not affect further execution of the code. Make sure that figma.closePlugin() is called only after the promise is completed or try deleting/commenting everything except what is in the screenshot and compiling the code.

Thank you, @tank666. I cleaned up the file so it contains only the below code. I added one console.log to be doubly sure. I still have the same issue: I get console logs #1, #2, #3, but #4 is skipped. (I can get the demo plugin to work, though that does not have any async calls. I am trying to get the go-to plugin to work now.)

Figma_plugin_issue2

To make it work you need to run it async way. Just wrap your code into another asynchronous function and run getParent with await keyword

(async ()=> {
    //…
    await getParen(id);
    figma.closePlugin();
})()
1 Like

Thank you, @Pavel_Kiselev . I tried this and added some null checks with a renamed function that does the same thing. However, still no luck, I get only console logs #1, #2, #3 but not #4. What else could be the reason?

No idea. There is something not very obvious. Debugging to the rescue.

Yes, surely. Thank you for looking into it.

The code from this screenshot should work correctly, and you should see 1, 2, 3 and 4a in the console. And 4b will never appear because the else block will never be executed. Check the compiled js file to make sure it matches your ts file.

Ok, thank you @tank666. The JavaScript code looks ok to me, but I need to debug deeper.

Update: The last code I shared in this post is working today! :+1: I am not sure what changed since yesterday other than a couple of restarts of Figma and VSC, but no complaints. Thanks a lot for your help @tank666 and @Pavel_Kiselev !

1 Like