我正在尝试在订阅并在Angular 4应用程序中分配响应后在Observable上添加属性。
getCourses() {
return this.coursesService.getCourses().subscribe(
res => {
this.courses = res;
for (const course of this.courses) {
course.isChecked = false;
}
}
);
}
代码在Observable上工作并创建属性,但我也得到了以下错误。
ERROR TypeError: Cannot create property 'isChecked' on boolean 'false' at SafeSubscriber._next at SafeSubscriber.webpackJsonp.../../../../rxjs/Subscriber.js.SafeSubscriber.__tryOrUnsub
如何更正代码,以免出错?
解决!!!
所以我没有意识到在api返回的对象数组的末尾是错误的。
[{“PersonID”:“129”,“FirstName”:“Ash”,“MiddleName”:“E。”,“LastName”:“Green”,“MemberID”:“129346”,“MemberNumber”: “105”,“MemberStatus”:2,“AffiliatedAgencyID”:“160”},{“PersonID”:“221334”,“FirstName”:“Abs”,“MiddleName”:null,“LastName”:“Plast”, “MemberID”:“1953”,“MemberNumber”:“2047”,“MemberStatus”:1,“AffiliatedAgencyID”:“13”},false]
一旦我创建了一个if语句来解释最后的错误,我的问题就解决了。我得到的另一个对象没有这个异常。所以它没有发生。
答案 0 :(得分:2)
如果var {google} = require('googleapis');
var pagespeed = google.pagespeedonline('v2');
pagespeed.pagespeedapi.runpagespeed({
'url': 'https://www.google.com/'
}).then(function(res) {
console.log(res);
}, function(err) {
console.log(err);
});
是一个数组,那么您应该可以毫无问题地使用它。但请确保res
是一个数组。
res
答案 1 :(得分:0)
所以我没有意识到在api返回的对象数组的末尾是错误的。
[{“PersonID”:“129”,“FirstName”:“Ash”,“MiddleName”:“E。”,“LastName”:“Green”,“MemberID”:“129346”,“MemberNumber”: “105”,“MemberStatus”:2,“AffiliatedAgencyID”:“160”},{“PersonID”:“221334”,“FirstName”:“Abs”,“MiddleName”:null,“LastName”:“Plast”, “MemberID”:“1953”,“MemberNumber”:“2047”,“MemberStatus”:1,“AffiliatedAgencyID”:“13”},false]
一旦我创建了一个if语句来解释最后的错误,我的问题就解决了。我得到的另一个对象没有这个异常。所以它没有发生。