我是角色的新手,听起来可能很傻但是我没有得到这段代码的工作原理


 this.ms.getList()。然后((hl)=> {this.HeroesList = hl;});



 我调用了服务方法,成功的是什么呢回来了?


其次,这个箭头函数如何获得我的服务必须返回的英雄数组,然后将数组分配给我的组件变量,

 
我的组件代码:


 构造函数(私有ms:myService){
 }
 ngOnInit(){
 this.ms.getList()。then((hl)=> {this.HeroesList = hl;});
 }



 以下是服务:


 import {注入来自'@ angular / core'
导入{Hero}来自'./hero'
import {HeroesList}来自'./heroesList'
@Injectable()
export class myService {
英雄:英雄[];
 getList():Promise< Hero []> {
返回Promise.resolve(HeroesList); //成功时,返回列表
 }

}
 代码>


答案 0 :(得分:3)
如果你看一下如何将TypeScript转换为JavaScript(ES5),可能会更容易理解。
你的TypeScript:
this.ms.getList().then((hl) => { this.HeroesList = hl; });
透明化为JavaScript:
this.ms.getList().then(function(hl) {
this.HeroesList = hl;
});
Promise .then()
函数接受两个回调函数,一个用于成功回调,另一个用于错误回调。您只使用成功回调。因此,当您的Promise上执行.then()
时,如果您的Promise成功,它将回调您定义的成功函数。然后,您定义的成功函数会将服务变量设置为Promise的已解析结果。
答案 1 :(得分:1)
当promise解析时......它返回的是heroeslist,它是组件中的h1然后运行。