这个TypeScript代码段中发生了什么?
我对TypeScript相当陌生,但使用过JavaScript。我学习打字是为了使用Angular 2。在我的一个教程中,我遇到了以下代码这个TypeScript代码段中发生了什么?,typescript,Typescript,我对TypeScript相当陌生,但使用过JavaScript。我学习打字是为了使用Angular 2。在我的一个教程中,我遇到了以下代码 return new Promise(resolve => { // Simulate server latency with 2 second delay setTimeout(() => resolve(this.getHeroes()), 2000); }); 我只读了一点关于Promise类的内容,但它似乎包含一个resolve
return new Promise(resolve => {
// Simulate server latency with 2 second delay
setTimeout(() => resolve(this.getHeroes()), 2000);
});
我只读了一点关于Promise类的内容,但它似乎包含一个resolve方法。所以,我试图找出上面代码片段中实际发生的事情的数据流。Promise类是用包含方法的resolve变量的参数实例化的?我想我有点困惑,因为代码中的第二个解析词。如果这是Promise类的同一个解析,那么在Promise对象被实例化之前,它是如何被调用的呢。除非resolve是一种静态方法
基本上,我想弄清楚返回语句中到底发生了什么
马哈洛,提前 承诺对象构造函数接受两个参数:
:当希望承诺发出其工作结果时应调用的方法(例如:从HTTP调用返回数据)resolve
:当希望承诺发出错误时应调用的方法拒绝
setTimeout(() => resolve(this.getHeroes()), 2000);
setTimeout
接受两个参数
:将来要执行的函数回调
:执行前等待多长时间延迟
resolve(this.getHeroes())
因此,基本上,在2秒钟内,promise将通过发出getHeroes()
方法的结果来解决。无论哪种代码调用了返回承诺的函数,都将在那时获得英雄。在下面的示例中,someFunction
是实际具有返回新承诺(…)
的函数,result
是getHeroes()的输出
你好这不应该用angular
或angular2服务
标记,因为qeustion也不直接涉及。Promise构造函数将函数作为参数。在这种情况下,该函数接受一个名为resolve的参数。括号中的部分是该功能的实现。在TypeScript中查找向上箭头函数以了解更多信息。
someFunction().then(result => this.heroes = result)