2013-03-26 81 views
5

我一直在使用sqlite,phonegap,javascript和我需要從sqlite數據庫獲取信息。sqlite同步

我能夠獲取所有信息,我需要,插入,更新等

問題是JavaScript的異步方式工作。那就是它在處理來自數據庫的所有必要信息獲取之前正在處理所有其他成功的語句。

我一直在使用的回調一直試圖和我已經厭倦了它,因爲有在使用循環困難。 (不能因爲之前,在當前sqlquery的得到處理這不是我想要的循環重複得到循環內使用SQLite查詢)

是它可以同步執行這些操作分貝?

UPDATE 找到了新的解決方案從這裏:webkit executesql sentence and loop problem

+0

退房[caolan /異步(https://github.com/caolan/async)來幫助你管理你的異步操作(如串聯做異步operiations在一個循環中)。 – Chad 2013-03-26 13:57:42

+0

你有沒有想過如何在循環內部使用異步函數?我現在確實遇到了這個問題 – kim366 2018-02-24 19:39:01

+0

@ kim366我最終做的是刪除循環,並將其全部更改爲不優雅的函數調用。你可以在javascript中嘗試新的await函數來幫助你:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/await或者你可以閱讀這篇文章:https:// blog.lavrton.com/javascript-loops-how-to-handle-async-await-6252dd3c795 – 2018-02-24 20:11:09

回答

1

沒有,但有可能幫助圖書館...

http://html5sql.com/

我已經用它自己剛開始它允許您執行多個或單個SQL請求,並帶有1個回調。這可能正是你所需要的:)

+0

thanx感到頭疼。你引用的庫是好的,但不允許以同步方式在循環內進行異步操作。因爲我正在循環內部執行查詢,所以不建議使用回調。 – 2013-03-26 14:32:04

+0

您無法同步進行呼叫。如果它在一個循環中,那麼你必須調用一個函數,每個執行回調都調用它自己。 – Archer 2013-03-26 14:36:14

+0

哦..多數民衆贊成我目前在做什麼,並問這個問題,只是因爲代碼太長,做.. ..反正,thanx很多.. – 2013-03-26 14:42:47

1

您可以使用Siminov Framework。它允許您對本地SQLite數據庫進行同步/異步調用。它支持大多數的混合框架,如(CordovaReact NativeXamarin

但是,如果你正在建設使用JavaScript一個混合應用程序,那麼我會建議使用異步調用,因爲它比同步調用性能上的優勢。

+0

有關Siminov Framework的鏈接已死或無法訪問 – 2018-02-05 20:19:06