Sample code for 30+ languages & platforms
React Native Requires Chilkat v11.4.0+

Call a JavaScript Function Returning an Integer

See more JavaScript Examples

Demonstrates how to call a JavaScript function that returns an integer.

Chilkat React Native Downloads

React Native
import { Js, JsonObject, StringBuilder } from '@chilkat/react-native'

async function chilkatExample() {
  // ----------------------------------------------------------------------------------
  // The Javascript function called in this example is shown at the bottom of this page.
  // -----------------------------------------------------------------------------------

  // In this example, we'll load the Javascript function definition from a file.
  // It doesn't need to come from a file.  It could just as easily be loaded from a string.
  const sbScript = new StringBuilder();
  try {
    sbScript.loadFile('js_call_function.js', 'utf-8');
  } catch {
    console.log(sbScript.lastErrorText);
    return;
  }

  // Note: Each instance of a Chilkat Js object automatically establishes
  // its own internal runtime and context.  Applications do not need to explicitly create
  // the JavaScript runtime or context.
  const js = new Js();

  const result = new JsonObject();
  result.emitCompact = false;

  // Call Eval to add the function (shown at the bottom of this page) to the context's global object
  try {
    await js.evalAsync(sbScript, result);
  } catch {
    // Examine the result for an exception.
    console.log(result.emit());

    // Also examine the LastErrorText.
    console.log(js.lastErrorText);
    return;
  }

  console.log(result.emit());

  // The expected output is "undefined":

  // {
  //   "type": "undefined",
  //   "value": "undefined"
  // }

  //    When Eval processes a script containing only a function declaration,
  //    it successfully performs the action (the function becomes defined).
  //    However, since the script consists of a statement that produces no value,
  //    the script's overall completion value is empty. In JavaScript, the
  //    absence of a value is represented by `undefined`.
  // 
  //    Therefore, the Eval call returns `undefined`.

  // ------------------------------------------------------------------------------
  // Call the function calculateScore("Player1", 10, 20)

  const funcCall = new JsonObject();

  // Create JSON defining the function call:

  // {
  //   "name": "calculateScore",
  //   "args": [ "Player1", 10, 20 ]
  // }

  funcCall.updateString('name', 'calculateScore');
  funcCall.updateString('args[0]', 'Player1');
  funcCall.updateInt('args[1]', 10);
  funcCall.updateInt('args[2]', 20);

  funcCall.emitCompact = false;
  console.log(funcCall.emit());

  try {
    await js.callFunctionAsync(funcCall, result);
  } catch {
    // Examine the result for an exception.
    console.log(result.emit());

    // Also examine the LastErrorText.
    console.log(js.lastErrorText);
    return;
  }

  console.log(result.emit());

  // Output:

  // {
  //   "type": "int",
  //   "value": 37
  // }

  const retval = result.intOf('value');
  console.log(`retval = ${retval}`);
}
JavaScript
function calculateScore(name, pointsA, pointsB) {
    // Return length of name + both scores
    return name.length + pointsA + pointsB;
    }