2015-07-10 6 views
0

Мне нравится иметь некоторую помощь ... застрял в этом какое-то время.вызов другой функции из функции обратного вызова

var inventoryID = '123456'; 

function pickupFail(){ 
    db = window.openDatabase("myInvetory", "1.0", "myInvetory", 200000); 
    db.transaction(queryUpdateInventory, dbError); 
} 

function queryUpdateInventory(tx){ 
    var sql = "SELECT inventoryCount FROM Inventory WHERE inventoryID = ?"; 
    tx.executeSql(sql, [inventoryID], finalizeUpdateInventory, dbError); 
} 

function finalizeUpdateInventory(tx, results){ 
    .... 
    var inventoryCount = 0; 
    var inventory = results.rows.item(0); 
    .... 
    inventoryCount = inventory.count; 
    .... 
    .... 
    otherFunction(inventoryCount); // CALLING THIS PRODUCE CALLBACK ERROR 
    .... 
} 

function otherFunction(count,...){ 
    .... 
    //THIS IS LENGTHILY FUNCTION AND BEING USED BY OTHER FUNCTION AS WELL 

} 

Откровенно говоря, я очень новичок в концепции обратной связи Кордовы и javascript. Я действительно ценю помощь от вас, ребята.

+1

Какое сообщение об ошибке вы получаете? Если другая функция занимает более 1 парама, почему вы называете ее только одним? – doldt

+0

Точнее, это ошибка: Ошибка базы данных: 0 - обратный вызов оператора вызвал обратный вызов ошибки исключения или выражения, не возвратил false –

+0

, если я прокомментирую вызов другой функции, ошибки не возникает. –

ответ

0

Вы вызываете функцию и определяете ее позже. Определение otherFunction(count) до finalizeUpdateInventory() должно удалить ошибку. Таким образом, модифицированный код становится:

var inventoryID = '123456'; 

function pickupFail(){ 
    db = window.openDatabase("myInvetory", "1.0", "myInvetory", 200000); 
    db.transaction(queryUpdateInventory, dbError); 
} 

function queryUpdateInventory(tx){ 
    var sql = "SELECT inventoryCount FROM Inventory WHERE inventoryID = ?"; 
    tx.executeSql(sql, [inventoryID], finalizeUpdateInventory, dbError); 
} 

function otherFunction(count,...){ 
    .... 
    //THIS IS LENGTHILY FUNCTION AND BEING USED BY OTHER FUNCTION AS WELL 

} 

function finalizeUpdateInventory(tx, results){ 
    .... 
    var inventoryCount = 0; 
    var inventory = results.rows.item(0); 
    .... 
    inventoryCount = inventory.count; 
    .... 
    .... 
    otherFunction(inventoryCount); // CALLING THIS PRODUCE CALLBACK ERROR 
    .... 
} 
+0

Привет, Никхиль, мне жаль говорить, что функция переупорядочения решает проблему. Проблема вызвана вызовом otherFunction, вызывающим элемент html, который не существует. –

0

Я наконец-то нашел ошибку в otherFunction. Похоже, что otherFunction вызывает элемент html, который не существует на той же странице. Этот элемент html существует на других страницах, которые используют otherFunction.

Смежные вопросы