Javascript 如何获取角度测量中的可观测变量之外的变量
我有一个可观测的,有一个数组。我想在可观察对象之外获取该数组,以便将其与另一个数组合并Javascript 如何获取角度测量中的可观测变量之外的变量,javascript,arrays,json,angular,observable,Javascript,Arrays,Json,Angular,Observable,我有一个可观测的,有一个数组。我想在可观察对象之外获取该数组,以便将其与另一个数组合并 this.builderService.getCommercialData() .subscribe( data=>{ this.commercialDetails = data; this.commercialDetailsArray.push(this.commercialDetails); console.log(th
this.builderService.getCommercialData()
.subscribe(
data=>{
this.commercialDetails = data;
this.commercialDetailsArray.push(this.commercialDetails);
console.log(this.commercialDetailsArray);
this.newcommercialDetailsArray =
this.commercialDetailsArray[0];
const arrayLength = this.commercialDetailsArray.length;
if (arrayLength < 1) {
this.loaderStatus = false;
this.dataLoaded = false;
this.noData = true;
} else {
this.loaderStatus = false;
this.dataLoaded = true;
this.noData = false;
}
},
error=>{},
);
this.builderService.getCommercialData()
.订阅(
数据=>{
this.commercialDetails=数据;
this.commercialDetails.ray.push(this.commercialDetails);
console.log(this.commercialDetailsArray);
this.newcommercialDetailsArray=
此.commercialDetailsArray[0];
const arrayLength=this.commercialDetailsArray.length;
if(排列长度<1){
this.loaderStatus=false;
this.dataload=false;
this.noData=true;
}否则{
this.loaderStatus=false;
this.dataload=true;
this.noData=false;
}
},
错误=>{},
);
我想取newcommercialDetailsArray
您无法使用实际数据访问订阅外部的数组,因为它是
异步回调,您希望以同步方式访问它。你
可以使用以下命令合并订阅中的数组
myArray=[];
this.builderService.getCommercialData()
.订阅(
数据=>{
this.commercialDetails=数据;
this.commercialDetails.ray.push(this.commercialDetails);
this.newcommercialDetailsArray=
此.commercialDetailsArray[0];
//在这里合并;
让myNewArray=
this.newcommercialDetailsArray.concat(this.myArray);
const arrayLength=this.commercialDetailsArray.length;
if(排列长度<1){
this.loaderStatus=false;
this.dataload=false;
this.noData=true;
}否则{
this.loaderStatus=false;
this.dataload=true;
this.noData=false;
}
},
错误=>{},
);
更新
如果您需要运行两个Observable来生成数据,则可能需要查看Observable.forkJoin()
Fork Join()运算符允许我们获取可观察对象的列表
并并行执行它们。一旦列表中的每个可见项发出
forkJoin的值将发出一个包含
列表中所有可观测值的解析值列表
更多关于例子
我已经用Angular 2完成了
ts文件
ngOnInit() {
this._basicService.getBasic().subscribe(
data => {
this.basicResponse = data;
console.log(this.basicResponse);
return this.basicResponse;
}
)
}
我已从服务中获取数据并将其放入基本应答,然后将数据从订阅函数控制台返回到另一个onclick函数,以检查基本应答是否存在
只需返回值,它对我有效
我不能,因为我有另一个可观测的,它有一个数组要与这个数组合并,由于这个原因,我想把数组取到外面。你应该在问题中提到这一点,更新答案
ngOnInit() {
this._basicService.getBasic().subscribe(
data => {
this.basicResponse = data;
console.log(this.basicResponse);
return this.basicResponse;
}
)
}
save()
{
console.log(this.basicResponse)
}