For making an asynchronous request, a call back function needs to be defined and passed as an additional parameter to the call() API.
Syntax 
result = service_instance_object.call(operation, parameters, callback=callback_function)
Arguments 
The operation argument describes the service requested from the service provider. The parameters argument is a dictionary, which specifies input parameters to the specified request. 
callback_function is an user defined callback function.
The following sample code illustrates how to define a callback handler function to handle the response from an asynchronous request:
def callback_function(transactionID, eventID, outParam)
The following table describes the arguments of the call back function:
| Argument | Description | Value | 
transactionID | 
This is the unique transaction ID associated with the particular asynchronous request. | It is returned as part of the result of the initial asynchronous call. | 
eventID | 
Specifies the asynchronous operation status. | For a complete list of EventID, see EventID 6.12.2 section in the Appendix. | 
outParam | 
This argument is a dictionary that holds the output of an asynchronous call. | Refer to the following table for the dictionary items in outParam. | 
The outParam argument of callback method is a map containing the return value, an error code, and an error message.
| Properties | Description | Values | 
ReturnValue | 
This key contains the information requested by the asynchronous call that initiated the callback.  
This key is present only if the requested service has a value to return. In this case,   | 
Depends on the Platform Service API and the asynchronous method that was called. Not all calls return this property. | 
ErrorCode | 
Specifies a pre-defined error code | For detail information about Platform Service API error codes and their descriptions, see Service API Error Codes and Description 6.12.1 section in the Appendix. | 
ErrorMessage | 
Describes the error | Depends on the Platform Service API and the asynchronous method that is called. | 
Example 
The following sample code illustrates how to retrieve media files from a database, using the operation:
import scriptext
import e32
def media_callback(trans_id, event_id, output_params):
    # Check if we are interested in this transaction
    if trans_id == media_trans_id:
        print "Not the transaction in which we are interested!"
        return
    # Check if the transaction is complete
    if event_id != scriptext.EventCompleted:
        print "Transaction not complete!"
        return
    # Check if the transaction has resulted in any error
    if output_params['ReturnCode'] != 0:
        print output_params['ReturnMessage']
    else:
        song_list = []
        for item in output_params['ReturnValue']: 
            song_list.append(item['FileName'])
        print "List of files retrieved:", song_list
    lock.signal()
lock = e32.Ao_lock()
media_handle = scriptext.load('Service.MediaManagement', 'IDataSource')
# Request for the list of mp3s in ascending order
media_trans_id = media_handle.call('GetList', 
                                   {'Type': u'FileInfo': u'FileExtension', 
                                               'StartRange': u'.mp3'},
                                    'Sort': {'Key': u'FileName', 'Order': u'Ascending'}}, 
                                   callback=media_callback)
lock.wait()
See About this document... for information on suggesting changes.