Angular 角度7-你能称之为';本地';订阅内的方法?

Angular 角度7-你能称之为';本地';订阅内的方法?,angular,asynchronous,rxjs,observable,Angular,Asynchronous,Rxjs,Observable,如果我更改this.item重新分配的顺序,并将带有convertToArray()方法的行置于其他两行之上,则下面的代码将停止工作: combineLatest(params, queryParams, (params, qparams) => ({ params, qparams })) .subscribe(allParams => { this.item.color = allParams.qparams['color'] || allParams

如果我更改
this.item
重新分配的顺序,并将带有
convertToArray()
方法的行置于其他两行之上,则下面的代码将停止工作:

combineLatest(params, queryParams, (params, qparams) => ({ params, qparams }))
      .subscribe(allParams => {
        this.item.color = allParams.qparams['color'] || allParams.params['color'] || ''; //this line must be above
        this.item.price = parseInt(allParams.qparams['price']) || 0; //this line also
        this.items.features = this.convertToArray(allParams.qparams['features']);
      });

convertToArray
方法只是将字符串转换为数组(
if(typeof(a)==string){return[a]}
),如果将其放在subscribtion的最后一行,则可以完美地工作。如果不是,则不会执行下面的所有操作,我想了解原因。

是否定义了this.items.features?还有什么?控制台中是否有错误?控制台中没有错误,我在长时间搜索后发现了此错误,当时我将console.log所有3行记录下来,发现此
convertToArray
方法之后的那些未打印。This.items.features预先定义为空数组。在
else
上返回一个空数组。在
subscribe
中的每一行末尾都有一个
。怎么回事?