AngularJS-如何从图像对象创建延迟对象
AngularJS - how to create deferred object from image object
我正试图从简单的图像对象创建中创建一个延迟对象,如下所示:
var image = new Image();
image.src = 'some url';
image.onload = function() {
// some code
}
现在。。。如何在AngularJS中使用$q库创建延迟对象?有可能吗?
我假设有一个工厂,您正计划将这个函数放在那里。然后:
.factory('utils', function($q) {
return {
createImage: function(src) {
var deferred = $q.defer(),
image = new Image();
image.onload = function() {
deferred.resolve(image);
};
image.src = src;
return deferred.promise;
}
};
});
然后你会像往常一样使用它:
utils.createImage('/assets/images/big-logo.png').then(function(imgObj) {
console.log(imgObj);
});
Angular 1.3。由于Angular 1.3版本承诺服务$q
也允许类似于原生Promise
构造函数的新语法。然后可以重写上述函数:
createImage: function(src) {
return $q(function(resolve, reject) {
var image = new Image();
image.onload = function() {
resolve(image);
};
image.src = src;
});
}
您可以将这两个版本与1.3一起使用。
最后是简单的演示:http://plnkr.co/edit/MbQEDPHoAurFd6JwHTji?p=preview
相关文章:
- JavaScript名称空间和对象创建
- 从不同的对象创建阵列
- Nodejs-从对象创建可读流
- Javascript对象创建实践
- 插件SDK中的动态或计算对象创建
- 为json对象创建一个动态表
- 对象.创建解释
- 从对象创建嵌套数组失败
- 从JSON对象创建具有超链接的HTML表
- 如何将文档对象创建为HTML页面
- 创建一个类,该类使用es6类语法将Function对象创建为实例
- KineticJS在对象创建(NOOB)后更改属性
- 对象创建中的JavaScript && notation
- Javascript对象创建-创建许多对象
- 从另一个JSON对象创建JSON对象
- 使用linq.js从多个对象创建JSON对象数组
- 如何使用Immutable.js从javascript原始对象创建记录映射
- 在fabric.js中初始化对象创建的子类
- Angularfire:从$FirebaseObject的子对象创建$FirebaseObject
- 为JSON对象创建CRUD