好的我正在学习光纤而且我不知道如何实现“等待光纤内循环结束”
现在我有了这个代码,没有问题。
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是真的
答案 0 :(得分:0)
听起来好像是从桌面编程中的光纤/线程的一些记忆开始,并尝试映射精确的等价。我记得这个世界。不要那么想。纤维更多的是不等待随时可能出现的答案。
我敢打赌,如果你采取更小的步骤,少花点思考,只是得到一些HTML / js来做你想做的事情,然后当你遇到停止障碍时回到这里,你就会取得进步。
例如,项目的所有权通常由文档中的字段ownerid表示,匹配当前用户ID
答案 1 :(得分:0)
Fiber(function() {
_.each(myBank.items,function(loopItem,key,list){
if (loopItem.itemId == item.itemId) {
ownItem = true;
countOfOwnItemInBank = parseInt(loopItem.number);
}
});
}).run();
此代码应该同步。