タグ付けされた質問 「synchronous」



10
同期プログラミングと非同期プログラミングの違いは何ですか(node.js内)
nodebeginnerを読んでい て、次の2つのコードに遭遇しました。 最初の1つ: var result = database.query("SELECT * FROM hugetable"); console.log("Hello World"); 2つ目: database.query("SELECT * FROM hugetable", function(rows) { var result = rows; }); console.log("Hello World"); 私は彼らがしなければならないことを取得し、彼らはデータベースにクエリを実行してクエリへの回答を取得します。そしてconsole.log('Hello world')。 最初のものはおそらく同期コードです。2つ目は非同期コードです。 2つの部分の違いは私には非常にあいまいです。出力はどうなりますか? 非同期プログラミングでグーグルしても助けにはなりませんでした。

4
jQuery:同期AJAXリクエストの実行
私は過去にjQueryをいくつか実行したことがありますが、これには完全にこだわっています。私は同期ajax呼び出しを使用することの長所と短所について知っていますが、ここではそれが必要になります。 リモートページは読み込まれますが(firebugで制御されます)、戻り値は表示されません。 関数が適切に戻るようにするにはどうすればよいですか? function getRemote() { var remote; $.ajax({ type: "GET", url: remote_url, async: false, success : function(data) { remote = data; } }); return remote; }
187 ajax  jquery  synchronous 

10
Node.jsまたはJavaScriptの非同期関数呼び出しを同期関数にラップする方法
関数を公開するライブラリを管理しているとしますgetData。ユーザーはそれを呼び出して実際のデータを取得します。 var output = getData(); 内部ではデータがファイルに保存されるため、getDataNode.jsビルトインを使用して実装しますfs.readFileSync。それは明らかだ両方getDataとfs.readFileSyncの同期機能があります。ある日、基礎となるデータソースを、非同期にのみアクセスできるMongoDBなどのリポジトリに切り替えるように言われました。また、ユーザーを怒らせるのを避けるように言われましたgetData。APIを変更して、Promiseのみを返すか、コールバックパラメータを要求することはできません。どのようにして両方の要件を満たしますか? コールバック/約束を使用する非同期関数は、JavasSriptとNode.jsのDNAです。自明でないJSアプリはおそらくこのコーディングスタイルに浸透しています。しかし、この実践は、いわゆる運命のコールバックピラミッドに簡単につながる可能性があります。さらに悪いことに、呼び出しチェーン内の呼び出し元のコードが非同期関数の結果に依存している場合、それらのコードもコールバック関数にラップする必要があり、呼び出し元にコーディングスタイルの制約を課します。大規模なグローバルリファクタリングを回避するために、非同期関数(サードパーティのライブラリで提供されることが多い)を同期関数にカプセル化する必要がある場合があります。この問題に関する解決策の検索は、通常、ノードファイバーで終わりましたまたはそれから派生したnpmパッケージ。しかし、ファイバーは私が直面している問題を解決できません。ファイバーの作者が提供した例でさえ、欠陥を示していました。 ... Fiber(function() { console.log('wait... ' + new Date); sleep(1000); console.log('ok... ' + new Date); }).run(); console.log('back in main'); 実際の出力: wait... Fri Jan 21 2011 22:42:04 GMT+0900 (JST) back in main ok... Fri Jan 21 2011 22:42:05 GMT+0900 (JST) 関数Fiberが非同期関数のスリープを本当に同期に変換する場合、出力は次のようになります。 wait... Fri Jan 21 …

8
JavaScriptで、いくつかの非同期タスクが完了するのを待つ最も簡単な方法は?
mongodbコレクションをいくつか削除したいのですが、それは非同期タスクです。コードは次のようになります。 var mongoose = require('mongoose'); mongoose.connect('mongo://localhost/xxx'); var conn = mongoose.connection; ['aaa','bbb','ccc'].forEach(function(name){ conn.collection(name).drop(function(err) { console.log('dropped'); }); }); console.log('all dropped'); コンソールに次のように表示されます。 all dropped dropped dropped dropped all droppedすべてのコレクションが削除された後に印刷されることを確認する最も簡単な方法は何ですか?サードパーティを使用してコードを簡略化できます。

11
document.createElement(“ script”)を同期的に
.jsファイルを同期的に呼び出して、すぐに使用することはできますか? <script type="text/javascript"> var head = document.getElementsByTagName('head').item(0); var script = document.createElement('script'); script.setAttribute('type', 'text/javascript'); script.setAttribute('src', 'http://mysite/my.js'); head.appendChild(script); myFunction(); // Fails because it hasn't loaded from my.js yet. window.onload = function() { // Works most of the time but not all of the time. // Especially if my.js injects another script that …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.