Arrays 阵列中的推送方法不工作-角度2

Arrays 阵列中的推送方法不工作-角度2,arrays,angularjs,api,angular,promise,Arrays,Angularjs,Api,Angular,Promise,在过去的4个小时里,我一直在使用这段代码,无法找出问题所在。这是用打字稿写的。 newsa数组将填充我使用api提取的数据。但是,在我使用公共前缀和all等所有需要正确声明数组之后,它显示了类似于找不到push属性的错误。没有错误,但没有推送任何内容。怎么了。 如果你能回答的话,那将是很大的帮助 public newsa: Array<any> = []; fetchNews() { console.log("Fetch NEws has started"); var

在过去的4个小时里,我一直在使用这段代码,无法找出问题所在。这是用打字稿写的。 newsa数组将填充我使用api提取的数据。但是,在我使用公共前缀和all等所有需要正确声明数组之后,它显示了类似于找不到push属性的错误。没有错误,但没有推送任何内容。怎么了。 如果你能回答的话,那将是很大的帮助

public newsa: Array<any> = [];
fetchNews() {
    console.log("Fetch NEws has started");
    var that = this;
    let googlenewsUrl:string;
    let finalUrl: string;

    this.countries.forEach(function(i) {

        googlenewsUrl = "https://news.google.com/news?q=" + i.name.replace(/\s+/g, '') + "&output=rss";
        finalUrl = '//ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=50&callback=JSONP_CALLBACK&q=' + encodeURIComponent(googlenewsUrl);
        that.jsonp.get(finalUrl).toPromise().then(news => that.newsa.push(news)).catch(that.handleError);           
    });

}
公共新闻a:Array=[]; fetchNews(){ log(“获取新闻已开始”); var=这个; 让googlenewsUrl:string; 让我们来总结一下:字符串; 此.countries.forEach(功能(i){ 谷歌新闻URL=”https://news.google.com/news?q=“+i.name.replace(/\s+/g,”)+“&output=rss”; finalUrl='//ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=50&callback=JSONP_callback&q='+encodeURIComponent(googlenewsUrl); that.jsonp.get(finalur.toPromise().then(news=>that.newsa.push(news)).catch(that.handleError); }); } 而不是

 function(i)
使用

保留此

的范围,而不是

 function(i)
使用


为了保留

的范围,api请求也是成功的。除了主要的推动部分外,一切都很好。然后你应该用你的解决方案回答你自己的问题@HrishikeshBarman如果你已经弄明白了,你必须在下面添加你的答案,并接受它。而且api请求是成功的。除了主要的推动部分外,一切都很好。然后你应该用你的解决方案回答你自己的问题@如果你已经弄明白了,你必须在下面添加你的答案,并接受它。