[英]Node.js meteor.js fibers and loop
好的,我正在學習光纖,但我不知道如何實現“等待光纖內部循環結束”
現在我有了這段代碼,可以正常工作了。
if (Meteor.isServer) {
function checkIfIOwnThisItem(callback) {
setTimeout(function() {
callback("this callback");
}, 500);
}
var f = Fiber(function() {
var fiber = Fiber.current;
checkIfIOwnThisItem(function(str) {
fiber.run(str);
});
str = Fiber.yield();
console.log(str);
});
f.run();
}
我需要替換 setTimeout ... FOR ...
_.each(myBank.items,function(loopItem,key,list){
if (loopItem.itemId == item.itemId) {
ownItem = true;
countOfOwnItemInBank = parseInt(loopItem.number);
}
});
整個要點是首先檢查我是否已經擁有項目(自己的項目為真),然后我可以做任何我想做的事,但我需要確保ownItem為真
聽起來您是從一些有關桌面編程中的光纖/線程的回憶開始的,並試圖映射一個精確的等效項。 我記得那個世界。 不要那樣想。 光纖更多的是不等待可能隨時出現的答案。
我敢打賭,如果您采取較小的步驟,少花一點心思,只是獲得一些HTML / js來完成您想要的事情,然后在遇到一個障礙時回到這里,您將取得進步。
例如,項目的所有權通常由文檔中的字段,所有者標識,匹配當前用戶標識來表示
Fiber(function() {
_.each(myBank.items,function(loopItem,key,list){
if (loopItem.itemId == item.itemId) {
ownItem = true;
countOfOwnItemInBank = parseInt(loopItem.number);
}
});
}).run();
此代碼應同步工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.