Change native code execution to use async ipcRenderer.invoke
#35
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
As stated this changes the invoke calls to use async and will require build scripts to be changed to use:
I looked into identifying the calling function constructor to determine if the response was async or not. But there is no safe way to determine this as a synchronous function can return a promise.
Since all calls to the native side should be async anyway re the official electron docs and general best practises:
As this results in exported native methods needing to return promises docs should reflect the need to use async methods.
Switching to invoke fixes issues with serialization and performance especially on initial load.