答えが:
sendMessage
への呼び出しは同期式なので、非同期の機能を呼び出す必要があります(下記参照)。 sendMessage
はNodeJSドキュメントには表示されません。サイクルが同期している :
に
オリジナル答えを
var obj, keys, key, index;
// Define the object
obj = {
'item1': 'apple',
'item2': 'orange'
};
// Find its keys (you can just type in the array if they don't
// need to be discovered dynamically)
keys = [];
for (key in obj) {
keys.push(key);
}
// Start the loop
index = 0;
process();
// This function gets called on each loop
function process() {
// Are we done?
if (index >= keys.length) {
// Yes
console.log("The cycle ended");
}
else {
// No, send the next message and then
// use this function as the callback so
// we send the next (or flag that we're done)
sendMessage(obj[keys[index++]], process);
}
}
:あなたはそれはあなたからそれを得たということでしたどんなソースからの同期バージョンを見つける必要があり、またはそのコールバックメカニズムを使用します。あなたは
setTimeout
のような何かをしなければならないでしょうか何か*
*同期にする何かをする必要があります。
NodeJSに行っている呼び出しは、同期していない可能性があります。同期呼び出しが必要な場合は、xyzSync
バージョンのものに電話する必要があります。
継続あなたがループを作りたいと思った場合、あなたが意味するかもしれないものを推測する* 同期*:
var obj, key;
// Define the object
obj = {
'item1': 'apple',
'item2': 'orange'
};
for (key in obj) {
schedule(key);
}
function schedule(k) {
setTimeout(function() {
// Do something with obj[k]
}, 0);
}
ようこそStackOverflow!合理的な方法で回答を得るためには、質問の詳細をもっと詳しく記述する必要があります。実際には、今のように、あなたの質問はコミュニティによって「本当の質問ではない」として閉鎖されるかもしれません。それを気にさせてはいけません。もう少し詳しくお試しください。人**は準備ができていて、助けてくれるでしょう。おそらく、[FAQ](http://stackoverflow.com/faq)と[このページの質問方法](http://stackoverflow.com/questions/how-to-ask)を読む価値があります。最高、 –
ありがとう、T.J.クラウダー。 –
Milo、もう一度質問を再投稿するのではなく、質問を「編集」して詳細情報を提供することができます – Matt