節點和異步編程的新手段。調用一個函數來填充兩個不同的異步調用中的數組有問題嗎?我正在談論的一個簡單示例是:兩個異步函數調用填充相同的數組?
var myArray = [];
function filler(n) {
return new Promise(function (resolve, reject) {
for (var i = 0; i < 10; i++) {
myArray.push(n + i);
}
resolve();
});
}
filler(3).then(function() {
console.log('Done with filler passing 3');
});
filler(10).then(function() {
console.log('Done with filler passing 10');
});
setTimeout(function() {
console.log(myArray);
}, 3000);
這兩個異步調用都可能試圖在相同的時間推送到myArray。有沒有問題,或者是否node.js優雅地處理?它運行時,我運行它,但我不知道如果我只是幸運,沒有碰撞。
JavaScript是單線程。沒有併發問題。 – Tomalak
@Tomalak:JavaScript不是單線程的。 NodeJS是,但。 –
哪些引擎不是? – Tomalak