【发布时间】:2016-06-30 14:57:01
【问题描述】:
如何在指令中解决 Angular 2 中的承诺?我正在尝试做一个简单的图像加载指令:
@Directive({
selector: '[carouselImage]',
host: {
'(load)' : 'onImageLoad()'
}
})
class CarouselImageDirective {
private _promise: Promise;
private _loaded: boolean = false;
constructor(private _elRef: ElementRef, private _renderer: Renderer) {
}
loadImage() {
this._promise = new Promise<ElementRef>( resolve => {
resolve(this._elRef);
});
}
onImageLoad() {
this._promise.resolve(); //this won't work
this._loaded = true;
console.log('Image loaded ', this._elRef);
}
}
到目前为止,我的尝试没有奏效。
【问题讨论】:
-
你试过
Promise.resolve(this._promise);吗? -
@echonax 不工作
-
你想做什么?你不解决承诺,他们解决他们自己。
-
@dfsq 承诺不会自行解决,总有一个点可以解决它们。我正在尝试做一个简单的图像加载器,检测图像何时加载。有什么想法/最佳实践吗?
-
我知道 Promise 是如何工作的。我的措辞很糟糕,无论如何很高兴你找到了解决方案。虽然还不是很清楚你在指令中需要这个 promise 做什么,但我的意思是你已经有了 onload 事件。
标签: javascript typescript angular promise