0
所以,我有一個三個對象的數組。他們有一個名字和一個類型屬性(和其他各種屬性)。我想遍歷每個模塊,並使用readline
模塊獲取用戶輸入。下面是我用它來做到這一點(使用async
模塊)的JavaScript代碼:異步的每個都立即打印出所有元素
async.each(questions.q, function (e, cb) {
if (e.type === "s") {
//not important
} else if (e.type === "q") {
rl.question(e.name, function (a) {
//do stuff
cb();
});
}
}, function (err) {
if (err) throw err;
});
(question.q
是元素的數組)
然而,輸出爲我的三個對象與type
q
是以下內容:
Question1Question2Question3 //input
不是一次做一個的,each
打印所有3出來,然後等待輸入。爲什麼會這樣,我該如何解決它?
聽起來像你不應該異步運行這些,如果你不想這種行爲,但我想你可以很容易地用一個數字變量模擬一個鎖定機制,如果你想保持代碼使用異步。 – ShaneQful 2014-09-24 21:47:44
@ShaneQful我認爲以異步方式運行這些是正確的做法嗎?它等到東西已經完成,然後轉向下一個,對吧? – kyr 2014-09-24 21:50:04
所以你想要他們一次運行一個?嘗試每個系列 – aembke 2014-09-24 21:50:04