eMOBIQ Documentation
eMOBIQ Platfom
eMOBIQ Client
eMOBIQ Client
  • Getting Started
  • How Pricing Works in eMOBIQ AI
  • Platform Interface Reference
  • Page Rendering Behaviour
  • Ui Components
    • Basic
      • Frame
      • Image
      • Label
      • Panel
      • Streamcamera
      • Streamplayer
      • Video
    • Forms
      • Button
      • Checkbox
      • Combobox
      • Datepicker
      • Edit
      • Memo
      • Radiobutton
      • Timepicker
    • General
      • Barcode
      • Chart
      • Datalist
        • Datalist
        • Using Datalist
      • Map
      • Pdf
      • Qrcode
      • Signature
      • Snippet
    • Payment
      • Paypal
  • Events Reference
  • Actions And Visual Logic
    • Action Reference
      • Cordova
        • App
          • animate
          • bbCodeToCanvas
          • bbCodeToCanvasSync
          • canvasGenerate
          • canvasGenerateFrom
          • canvasHeight
          • canvasResize
          • canvasToDataURL
          • canvasToImage
          • clearAllVar
          • comment
          • componentAttr
          • componentElAttr
          • ComponentElement
          • componentMethod
          • componentValue
          • console
          • convertImageToBase64
          • disablePage
          • displaySnippet
          • enablePage
          • getAppVersion
          • getComponent
          • getLanguage
          • getLanguageList
          • getVar
          • getVarAttr
          • hideElement
          • inactivityTimeout
          • isElementShown
          • istampzRequest
          • languageConvertData
          • methodCall
          • nfcStartRead
          • nfcStopRead
          • nfcWrite
          • openlink
          • pullToRefresh
          • reload
          • remComponentElAttr
          • renderTemplate
          • resolveJSName
          • scroll
          • sendMail
          • setComboOptions
          • setCompoentFocus
          • setComponentAttr
          • setComponentElAttr
          • setComponentLink
          • setComponentValue
          • setLanguage
          • setVar
          • share
          • showElement
          • sortingDisable
          • sortingEnable
        • Array
          • avg
          • count
          • findArrayIndex
          • newArray
          • newObject
          • pop
          • push
          • pushObject
          • removeObject
          • shift
          • sort
          • sum
          • unshift
        • Browser
          • valueFromURL
        • Chart
          • chartPopulateAreaData
          • chartPopulateAreaSplineData
          • chartPopulateBarData
          • chartPopulateDonutData
          • chartPopulateGaugeData
          • chartPopulateLineData
          • chartPopulatePieData
          • chartPopulateScatterPlotData
          • chartPopulateSplineData
          • chartPopulateStepAreaData
          • chartPopulateStepData
        • Comparation
          • equal
          • equalOrGreater
          • equalOrLess
          • greater
          • less
          • notEqual
        • Conversion
          • encodeURI
          • fontHuge
          • fontLarge
          • fontNormal
          • fontSmall
          • generateBarcode
          • generateQRCode
          • join
          • jsonDecode
          • jsonEncode
          • round
          • split
          • toBoolean
          • toFloat
          • toInteger
          • toNull
          • toString
          • xmlDecode
        • Dataset
          • acumaticaCall
          • axCall
          • clearAllData
          • clearData
          • crm365Call
          • crmCall
          • dataFieldToArray
          • dataFromString
          • dataToString
          • deleteBy
          • deleteByMulti
          • deleteData
          • dynamicsGPCall
          • filterData
          • insert
          • insertData
          • loadData
          • loadNext
          • mssqlCall
          • mssqlQuery
          • navCall
          • query
          • rawCall
          • sageCall
          • sapB1Call
          • selectAll
          • selectBy
          • selectByMulti
          • soapCall
          • updateBy
          • updateByMulti
          • updateData
        • Device
          • HNSPublishMessage
          • HNSPushList
          • HNSPushMessageByUserId
          • HNSPushNotification
          • HNSRegisterUser
          • HNSSubscribeTopic
          • keyboardShow
          • addFaceAzure
          • addPersonAzure
          • barcodeScanDisable
          • barcodeScanEnable
          • barcodeScanEvent
          • unregisterBarcodeScanEvent
          • barcodeScanTrigger
          • barcodeScanner
          • captureAudio
          • captureImage
          • captureVideo
          • clearAccelerometer
          • clearExternalAppData
          • clearPosition
          • closeAudio
          • currentAccelerometer
          • dateTimeChooser
          • detectFaceAzure
          • deviceAddTouchSensor
          • deviceBeep
          • deviceHasTouchSensor
          • deviceId
          • deviceManufacturer
          • deviceName
          • deviceOS
          • deviceOSVersion
          • deviceRemoveTouchSensor
          • deviceSerial
          • deviceVerifyTouchSensor
          • deviceVibrate
          • exitApp
          • fileChooser
          • fileGetDetails
          • getExternalAppData
          • getLocation
          • identifyFaceAzure
          • imageChooser
          • keepScreenOn
          • keyboardHide
          • networkInformation
          • networkPrintingCheck
          • networkPrintingPrint
          • networkStatus
          • onBackButton
          • openAudio
          • openExternalApp
          • pauseAudio
          • playAudio
          • removeGroupAzure
          • removePersonAzure
          • screenBrightness
          • sendMailSMTP
          • setSizeDisk
          • socketConnect
          • socketDisconnect
          • socketLeave
          • socketListener
          • socketSend
          • startBeacon
          • startBeaconMonitoring
          • startStream
          • statusBarHide
          • statusBarShow
          • stopAudio
          • stopBeacon
          • stopBeaconMonitoring
          • stopStream
          • textToSpeech
          • verifyFaceFromPhotoAzure
          • watchAccelerometer
          • watchPosition
        • Dialog
          • confirmDialog
          • infoDialog
          • inputDialog
          • modalDialog
        • Facebook
          • facebookLogout
        • File
          • Copy
          • Delete
          • Download
          • Read
          • backupSqlite
          • open
          • restoreSqlite
          • saveBase64ToGallery
          • storagePath
          • write
        • Firebase
          • firebaseStorageDelete
          • firebaseStorageURL
          • firebaseStorageUpload
        • Flow
          • break
          • callback
          • clearInterval
          • conditional
          • continue
          • doWhileLoop
          • forLoop
          • map
          • setInterval
          • setTimeout
          • throw
          • tryCatch
          • whileLoop
        • Global
          • defaultImage
          • generateRandomAlphabet
          • generateRandomAlphanumeric
          • generateRandomNumber
          • getCurrentPage
          • getPreviousPage
          • gotoPage
          • makeId
          • openInternalBrowser
        • Google
          • googleLogin
          • googleLogout
          • mapAddMarker
          • mapClearMarker
          • mapDeleteMarker
          • mapFitBounds
          • mapGetZoom
          • mapRemoveClickListener
          • mapRoute
          • mapSetCenter
          • mapSetClickListener
          • mapSetZoom
          • placeAutoComplete
        • Intent
          • intentMaps
          • intentNavigation
          • intentPhoneCall
          • intentSMS
          • intentSendEmail
        • Logical
          • and
          • not
          • or
          • xor
        • Math
          • Absolute
          • add
          • atan2
          • ceil
          • cos
          • div
          • floor
          • max
          • min
          • mod
          • multi
          • pi
          • plus
          • pow
          • sin
          • sqr
          • sqrt
          • sub
          • tan
        • Object
          • addDate
          • convertTimezoneDate
          • dateDiff
          • dbDate
          • formatDate
          • formatNumber
          • objectAttr
          • objectKeys
          • objectValues
          • setObjectAtt
          • strToDate
          • toArray
          • toObject
        • Pdf
          • pdfGenerate
        • Payment
          • 2c2pPaymentRequest
          • eNetsPaymentRequest
          • generatePaynowQR
          • macAuthenticate
          • mcpEWalletQuickPay
          • mcpEWalletUnifiedOrder
          • mcpGetTransactions
          • mcpGetTranscationDetails
          • mcpTransactRefund
          • mcpTransactSales
          • mcpTransactVoid
          • paypalGenerateButton
        • Printer
          • btPrinterConnect
          • btPrinterDisconnect
          • btPrinterIsConnected
          • btPrinterPortList
          • btPrinterPrint
          • btPrinterRead
          • canvasToCPCL
          • canvasToESCP
          • canvasToESCPOS
          • canvasToEXPCL
          • canvasToZPL
          • formatToCPCL
          • formatToESCPOS
          • qrToESCPOS
          • setPrintStyle
        • Signature
          • signatureRedraw
        • Specialcharacter
          • sc_carriageReturn
          • sc_esc
          • sc_escape
          • sc_horizontalTab
          • sc_lineFeed
          • sc_space
        • String
          • capitalize
          • concat
          • decodeBase64String
          • decrypt
          • encodeBase64String
          • encrypt
          • findIndex
          • increment
          • left
          • length
          • lowerCase
          • mid
          • padString
          • replace
          • right
          • trim
          • upperCase
        • Validation
          • isArray
          • isEmail
          • isNull
          • isNumber
      • React Native
        • App
          • displaySnippet
          • openlink
          • reload
        • Component
          • setOptions
          • setProperty
          • setValue
          • getProperty
          • getValue
        • Connector
          • restCall
          • soapCall
        • Control
          • callback
          • clearInterval
          • conditional
          • delay
          • interval
          • loop
        • Conversion
          • toBoolean
          • toDate
          • toList
          • toNull
          • toNumber
          • toObject
          • toText
        • Dataset
          • insert
          • loadData
          • loadNext
          • read
          • remove
          • update
        • Datetime
          • difference
          • get
          • update
        • Device
          • barcodeCameraScanner
          • captureAudio
          • captureImage
          • captureVideo
          • chooseFile
          • generateBarcode
          • generateQRCode
          • getLocation
        • File
          • copy
          • getDetails
          • getStoragePath
          • read
          • remove
          • saveToGallery
          • write
        • Format
          • dateTime
          • number
          • text
        • Global
          • goToPage
        • List
          • average
          • combine
          • count
          • fill
          • find
          • includes
          • insertFirst
          • insertLast
          • max
          • min
          • removeFirst
          • removeLast
          • sort
          • sum
        • Log
          • write
        • Logic
          • and
          • equal
          • greaterThan
          • greaterThanOrEqual
          • lessThan
          • lessThanOrEqual
          • not
          • notEqual
          • or
        • Mail
          • send
        • Math
          • Absolute
          • add
          • atan2
          • cos
          • divide
          • modulo
          • multiply
          • pi
          • power
          • round
          • sin
          • square
          • squareRoot
          • subtract
          • tan
        • Map
          • getRoute
          • setCenter
          • setZoom
        • Object
          • insert
          • remove
          • getAttribute
          • setAttribute
        • Signature
          • clear
        • Text
          • case
          • combine
          • decrypt
          • encrypt
          • extract
          • findPosition
          • length
          • padding
          • replace
          • specialCharacter
          • trim
        • Validation
          • isEmail
          • isList
          • isNumber
        • Variable
          • get
          • getAttribute
          • set
          • setAttribute
    • Global Functions
    • Logic Block And Parameter Types
      • Logic Block And Parameter Types
      • Visual Interface
    • Logic Flow Sequence And Control
      • Asynchronous Actions And Callbacks
        • Asynchronous Actions
        • Best Practices
      • Callbacks
      • Conditional Logic
      • Loops
        • Comparing Loops
        • For Loop
        • Map
  • Data And Memory
    • Data Type
    • Memory
    • Data Processing Methods
  • Services
    • Services Reference
      • 2C2P Connector
        • 2C2P Connector
      • Accumatica Connector
        • Acumatica Connector
        • Acumatica Table
      • Aws Connector
        • Aws Connector
        • Aws Dynamodb Table
      • Ax Connector
      • Azure Cognitive Connector
      • Crm365 Connector
      • Dynamics Gp Connector
      • Enets Payment Connector
      • Hnspullnotification
      • Hnspushnotification
      • Istampz
      • Local Table
      • Mc Payment Connector
      • Mssql Connector
      • Nav Connector
        • Nav Connector
        • Nav Table
      • Nfc Reader
      • Paypal Connector
      • Raw Rest Connector
      • Sage Connector
      • Sap B1 Connector
      • Soap Connector
      • Sql Connector
        • Sql Connector
        • Sql Table
      • Sqlite
        • Sqlite Connector
        • Sqlite Table
    • Step By Step Guide
    • Services Additional Tips
    • Services Erp
      • Services Erp
  • Wizards
    • Function Wizard
    • Page Wizard
  • Plugins
    • Plugins
    • Service Manager
Powered by GitBook
On this page
  • Introduction to Asynchronicity
  • A Comparative Analysis: Synchronous vs. Asynchronous Execution
  • Asynchronicity in Practice
  • Implementing Asynchronous Logic in Visual Logic
  • Precautionary Measures: Concurrency and Callbacks
  • Advantages of Asynchronous Actions
  1. Actions And Visual Logic
  2. Logic Flow Sequence And Control
  3. Asynchronous Actions And Callbacks

Asynchronous Actions

In eMOBIQ, asynchronous actions are fundamental constructs that facilitate the development of dynamic and responsive applications. It is imperative to comprehend the concept of asynchronicity to effectively leverage these blocks.

Introduction to Asynchronicity

Asynchronicity denotes the capacity of a program to execute tasks concurrently and independently, without necessitating the completion of one task before initiating the next. Within the realm of app development, asynchronicity permits certain operations to transpire without causing the entire application to cease functioning.

A Comparative Analysis: Synchronous vs. Asynchronous Execution

In synchronous programming, tasks are executed in a sequential manner, one following the other. The initiation of a new task is contingent upon the completion of the preceding task. This approach can result in application unresponsiveness when operations are time-intensive.

Conversely, asynchronous programming facilitates the independent initiation of tasks. Asynchronous tasks are executed concurrently, enabling the program to execute other tasks while awaiting the completion of asynchronous operations. This results in more efficient resource utilization and an enhanced user experience.

Asynchronicity in Practice

Consider a scenario wherein an app needs to retrieve data from a remote server. Employing a synchronous approach would cause the app to become unresponsive until the data is retrieved, resulting in a lag in user interaction. However, by implementing asynchronous actions, the app can continue to process user inputs while concurrently fetching data in the background.

Implementing Asynchronous Logic in Visual Logic

Incorporating asynchronous actions into the visual logic canvas of your app is both intuitive and potent. These actions can be smoothly integrated into your app's logic flow:

  1. Drag and Drop: Select an asynchronous action from the list of available actions and drag it onto the visual logic canvas.

  2. Callback Logic: Assign callback actions to control the execution sequence following an asynchronous task. This ensures that the designated callback logic will only be executed upon the completion of the asynchronous operation.

  3. Data Sharing with 'Extra': In specific scenarios, data from a source asynchronous action can be shared with a callback action using the 'extra' parameter. This 'extra' value is duplicated and made accessible in the child function, thereby preventing variable overwrite conflicts.

Precautionary Measures: Concurrency and Callbacks

When employing concurrently running asynchronous actions, it is crucial to be aware of the following:

  • Indeterminate Sequence: Due to concurrency, there is no predetermined order of execution for asynchronous tasks. The initiation, execution, and completion of tasks can occur in any order, influenced by various factors.

  • Callback Execution: Execution of callback actions linked to asynchronous blocks is guaranteed only if there is a response from the asynchronous action. If no response is received, or if the asynchronous operation encounters an error, the callback may not be activated.

  • Race Conditions: Concurrent execution of multiple asynchronous tasks can lead to a potential issue known as a "race condition," which occurs when tasks attempt to modify shared data simultaneously, resulting in unpredictable outcomes. To mitigate this, carefully manage shared data, and consider using the 'extra' parameter if needed.

Advantages of Asynchronous Actions

  1. Responsiveness: Asynchronous actions enable your app to remain responsive and interactive, even during tasks that could potentially induce delays.

  2. Resource Efficiency: Concurrent task execution allows your app to optimize the utilization of available system resources, thereby enhancing performance.

  3. Improved User Experience: Asynchronicity contributes to a smoother user experience by preventing UI freezes and slowdowns.

PreviousAsynchronous Actions And CallbacksNextBest Practices

Last updated 1 year ago