Javascript Angular2 Observable.map局部变量的捕获值

Javascript Angular2 Observable.map局部变量的捕获值,javascript,angular,typescript,Javascript,Angular,Typescript,如何捕获局部变量的值以在Observable.map()callback中使用?例如,在我的Anglar2应用程序中,我希望捕获quantity的值,以便在findItem().map()中使用: let数量:number=1;//{ 如果(项!=null) { 对于(让i:number=quantity;i>0;i--)this.cart.addItem(item); } ordered.push(数量+x'+item.fullName);//用户的NL消息 })); 数量=1//重置数量 }

如何捕获局部变量的值以在
Observable.map()
callback中使用?例如,在我的Anglar2应用程序中,我希望捕获
quantity
的值,以便在
findItem().map()中使用:

let数量:number=1;//{
如果(项!=null)
{
对于(让i:number=quantity;i>0;i--)this.cart.addItem(item);
}
ordered.push(数量+x'+item.fullName);//用户的NL消息
}));
数量=1//重置数量
}
如果(entity.entity=='quantity')数量=entity.value,则为else;
}
返回可观察的forkJoin(查询,…);
ordered
将显示所有项目的数量1(因为
quantity
的值在循环结束时始终为1)

我的研究表明,这是JavaScript中非常常见的问题,并且有很多例子说明如何在
for
循环中捕获变量。但是,我无法找到如何捕获变量值以用于回调的任何信息,例如
Observable.map()

for
循环中使用常量

for (let entity of res.entities) {
    if(entity.entity == 'item') {
        const q = quantity; //here or somewhere
        queries.push(
            //..... use q instead
    }
    else if(entity.entity == 'quantity') quantity = entity.value;
}

for
循环中使用常量

for (let entity of res.entities) {
    if(entity.entity == 'item') {
        const q = quantity; //here or somewhere
        queries.push(
            //..... use q instead
    }
    else if(entity.entity == 'quantity') quantity = entity.value;
}

改为使用
const
-
let
在函数作用域结束后将不存在。@DanielCooke不是
const
不可分配的(编译器也会抱怨)?如果识别出“数量”,则应分配变量(下一个“项目”应具有数量)。或者我应该在
if(entity.entity=='item')
scope中引入另一个
const
变量吗?@DanielCooke是!在<代码>中引入变量(如果 S范围>代码>如果(实体,实体==‘项目’){const Lq=数量;…} <代码>产生预期结果-请考虑将其作为对这个问题的回答。是的,为模糊性道歉。我已将其添加到回答中。@DanielCooke不是
const
不可分配的吗?请使用
const
代替-
let
在函数作用域结束后将不存在。@DanielCooke不是
const
不可分配的(还有,编译器抱怨)?如果识别出“数量”,则应分配变量(下一个“项目”应具有数量)。或者我应该在
if(entity.entity=='item')
scope中引入另一个
const
变量吗?@DanielCooke是!在<代码>中引入变量(如果 S范围>代码>如果(实体,实体==‘项目’){const Lq=数量;…} <代码>产生预期结果-请考虑将其作为对这个问题的回答。是的,为模糊性道歉。我已经把它添加到了答案中,这不是
行为主体
的作用吗?