Welcome to the JavaScript feedback portal. We’re happy you’re here! If you have feedback on how to improve the JavaScript, we’d love to hear it!

  • Check out the features or bugs others have reported and vote on your favorites. Feedback will be prioritized based on popularity.
  • If you have feedback that’s not listed yet, submit your own.

Thanks for joining our community and helping improve Syncfusion products!

2
Votes

Feature Description

Provide support in the spreadsheet component for asynchronous custom formulas so users can define functions that return results asynchronously (via promises or async/await). This is needed to integrate external data sources and perform time-consuming operations (e.g., API calls) from formulas. The feature must prevent formulas from rendering as "[object Promise]" and ensure cells display resolved values when the asynchronous operation completes. It must also allow asynchronous functions to be used inside other custom-defined functions without breaking evaluation or rendering.


Requirements

  • Mandatory functionality:
    • Support custom formula functions that return a Promise or are declared async, and ensure the spreadsheet evaluates and renders the resolved value once the promise settles.
    • Ensure using an async call inside a custom-defined function (including nested custom functions) does not result in the cell showing [object Promise].
    • Ensure await can be used inside custom functions (i.e., the function can be async) and the engine handles the returned promise by updating the cell when resolved.
  • Behavioral expectations:
    • When a custom function returns a promise, the cell should show a pending state if applicable, then update to the resolved value.
    • Errors or rejected promises should be surfaced meaningfully (e.g., the cell displays an error message/state).
  • API expectations:
    • Accept user-defined custom functions that return either synchronous values or promises (no change to how users define functions aside from using async/promise semantics).
  • Data/formatting rules:
    • Resolved values should be rendered according to existing cell formatting rules.