Promise创建自定义失败不是函数Angularjs错误
Promise create custom fail is not a function Angularjs error?
因为我正在尝试使用promise在angularjs中创建html5目录函数。但它显示了错误,因为没有定义promise。
角度文件:-
$scope.createDirectory = function(dirName,dirLocation){
fileManager.createDirectory(dirName,dirLocation)
.then(function(data){
console.log(data, "dir created");
}).fail(function(err){
console.log(err,"dir err while creating");
});
};
JS文件:-
var fileManager = {
createDirectory: function(directoryName,dirLocation){
var makePromise = new Promise(function(resolve, reject){
dirLocation.getDirectory(directoryName, {create: true, exclusive: false}, function(data){
resolve(data);
}, function(error){
reject(error);
});
});
return makePromise;
}
}
TypeError: fileManager.createDirectory(...).then(...).fail is not a function
at h.$scope.createDirectory (app.js:60)
at angular.min.js:196
at f (angular.min.js:224)
at h.$eval (angular.min.js:123)
at h.$apply (angular.min.js:123)
at HTMLButtonElement.<anonymous> (angular.min.js:224)
at HTMLButtonElement.c (angular.min.js:32)
如何正确创建promise并将其绑定到angular函数。我用了catch而不是fail,它起作用了。如何为所有失败函数创建自定义错误回调,如
promise
中有拼写错误,应该是new Promise
。尽管我建议您使用$q
而不是Promise
。
使用$q
而不是Promise
对象的优点是,您的代码将是角度上下文&您不需要关心手动运行摘要循环。如果您使用Promise
,那么您需要手动运行摘要循环(因为Promise
将是本地异步JS函数,被认为是angular的外部世界)。
createDirectory: function(directoryName, dirLocation) {
var makePromise = $q(function(resolve, reject) {
dirLocation.getDirectory(directoryName, {
create: true,
exclusive: false
}, function(data) {
resolve(data);
}, function(error) {
reject(error);
});
});
return makePromise;
};
更新
.fail
函数在$q
对象上不可用,您需要将fileManager.createDirectory
函数代码调用更改为以下内容。
$scope.createDirectory = function(dirName,dirLocation){
fileManager.createDirectory(dirName,dirLocation)
.then(function(data){ //success callback
console.log(data, "dir created");
}, function(err){ //error callback
console.log(err,"dir err while creating");
});
};
相关文章:
- 存储$http如何从$http函数(Angularjs)外部获取可访问变量中的响应
- 使用OnClick函数(AngularJS)创建指令
- Promise创建自定义失败不是函数Angularjs错误
- 在文本点击时调用一个函数:AngularJS
- 参数不是函数-AngularJS未定义
- 获取类型错误:未定义不是函数 AngularJS
- 使用相同的函数 AngularJS 进行多表排序
- 两个不同视图上的两个按钮调用相同的函数 AngularJS
- .all()在解析函数AngularJS中
- 在UI中显示链接函数angularJs的数据
- TypeError:未定义不是函数-AngularJS
- 解析函数AngularJS超时
- 执行一个特定时间段的函数-AngularJs
- jQuery.AngularJS中的ajaxStart等效函数| AngularJS中的Ajax事件处理程序
- isValid表单验证,然后运行函数AngularJS
- 在所有控制器中对同一个事件执行同一个函数——AngularJS
- "未捕获的TypeError: undefined不是函数" AngularJS-BreezeJS
- 从控制器到外部函数angularjs的对象访问
- 如何在指令链接函数angularjs中显示来自对象的数据
- 使用$scope.$parent.$$childHead从控制器访问指令函数.AngularJS中的functionNa