2013-03-26 7 views
5

私はsqlite、phonegap、javascriptと私はsqliteのDBから情報を取得する必要があります使用しています。sqlite同期

私はこの問題は、非同期的に動作するJavaScriptです

など、私が必要とするすべての情報、挿入、更新を取得することができています。つまり、データベースから必要な情報がすべて取得される前に、他のすべてのステートメントを処理しています。

私はコールバックを使ってみましたが、ループを使用するのが難しいので、私は疲れています。 (現在のsqlqueryが処理される前にループが繰り返し処理されるので、ループ内でsqliteクエリを使用することはできません。

これらのdb操作を同期させることは可能ですか?私はちょうどそれを自分自身を使用し始めました

http://html5sql.com/

...ノーwebkit executesql sentence and loop problem

+0

[caolan/async](https://github.com/caolan/async)を参照して、非同期操作の管理(一連のループ内での非同期操作の実行など)を支援してください。 – Chad

+0

ループ内で非同期関数を使用する方法を理解しましたか?私はまさにこの問題を抱えています – kim366

+0

@ kim366最後にやったことは、ループを取り除き、エレガントでない関数呼び出しに変更することです。新しいawait関数をjavascriptで試してみることができます:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/awaitまたはこの記事を読むことができます:https:// blog.lavrton.com/javascript-loops-how-to-handle-async-await-6252dd3c795 –

答えて

1

が、役立つかもしれライブラリがあります:

UPDATE はここから新しいソリューションを見つけました1つのコールバックで複数のまたは単一のSQL要求を実行できます。それはあなたが必要なだけかもしれません:)

+0

というthanxのすべてを頭痛にならないようにすることができます。あなたが参照しているライブラリは良いですが、同期的な方法でループ内で非同期操作を行うことはできません..以来、私はループ内でクエリをやっているので、コールバックを使用することはお勧めできません。 –

+0

コールを同期して実行することはできません。それがループ内にある場合は、各実行コールバックでそれ自身を呼び出す関数を呼び出す必要があります。 – Archer

+0

ああ、私が現在やっていることは、コードがあまりにも長くなってしまっているだけなので、この質問をしました。とにかく、やっぱりたくさん.. –

1

Siminov Frameworkを使用することができます。これにより、ネイティブSQLiteデータベースへの同期/非同期の両方の呼び出しを行うことができます。それはあなたではJavaScriptを使用してハイブリッドアプリを構築している場合、私はそれが同期呼び出しよりもパフォーマンス上の利点を持っているので、非同期呼び出しを使用することをお勧めしますが、このような(CordovaReact NativeXamarin

としてハイブリッドフレームワークのほとんどをサポートしています。

+0

Siminov Frameworkに関するリンクが死んでいるか到達不能です –

関連する問題