2015-09-08 63 views
0

我无法在Web SQL事务中集成JavaScript承诺。我能够获得日志“测试”,但我无法获得“查询结果”日志。请帮助我我是JavaScript新手。任何帮助,真的很感激。以下是我的代码。SQL承诺中的Javascript承诺

function sample() 
{ 
    return executeTransaction() 
    .then(function(results) 
    { 
     console.log("Query Results:"); 
    }); 
} 

function executeTransaction(query) 
{ 
    console.log("Transaction Query : " + query); 

    db.transaction(function(transaction) 
    { 
     transaction.executeSql(query, [], function(transaction, result) 
     { 
      console.log("Test: " + JSON.stringify(result)); 
      return Promise.resolve(result); 

     } 
     , nullHandler 
     , errorHandler); 
    }); 


} 

function nullHandler(result) 
{ 
    console.log("Null Log : " + JSON.stringfy(result)); 

} 

function errorHandler(error) 
{ 
    console.log("Error Log : " + error); 
} 
+0

你的'executeTransaction'事务函数没有返回任何东西(更不用说承诺) - ne ither是匿名函数'function(transaction)' –

回答

1

executeTransaction功能不返回任何东西(更不用说承诺) - 既不是乍一看匿名功能function(transaction)

,并在不知道DB库太多了你正在使用,你需要做的(至少):

function executeTransaction(query) { 
    console.log("Transaction Query : " + query); 
    return new Promise(function (resolve, reject) { 
     db.transaction(function (transaction) { 
      transaction.executeSql(query, [], function (transaction, result) { 
       console.log("Test: " + JSON.stringify(result)); 
       resolve(result); // here the returned Promise is resolved 
      }, nullHandler, errorHandler); 
     }); 
    }); 
} 
+0

非常感谢。有用 :) – Avinash