如何在 AngularJs 中处理回调函数
How to Handle CallBack Functions in AngularJs?
在控制器中,我从工厂返回对象。该方法为回调类型。
但问题是对象没有重新出现。
我的实现是:
.factory('fileReadFactory', ['$http',
function ($http) {
var objRead = {
setReadObject: '',
setPath: 'comMyTaxi',
setFileName: '',
status: false,
errorCode: ''
};
var factory = {};
factory.fileRead = function RequestFileSystem(fileName) {
alert('factory start');
objRead.setFileName = fileName;
try {
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, createDirectory, fail);
objRead.status = true;
return objRead;
} catch (e) {
return objRead;
}
}
///write steps starts
function createDirectory(fs) {
fs.root.getDirectory(objRead.setPath, {create: true, exclusive: false}, onSuccessCreateFile, fail);
}
function onSuccessCreateFile(dirEntry) {
dirEntry.getFile(objRead.setFileName + '.txt.gz', null, gotFileEntryRead, fail);
}
function gotFileEntryRead(fileEntry) {
// alert('in 2 type step2');
fileEntry.file(gotFileReading, fail);
}
function gotFileReading(file) {
// alert('in 2 type step3');
readFile(file);
}
function readFile(file) {
// alert('in 2 type step4');
var reader = new FileReader();
reader.onloadend = function (e) {
// alert("Text is: "+this.result);
objRead.setReadObject = this.result;
}
reader.readAsText(file);
// alert('reading Ends');
}
//write file ends
function fail(err) {
alert('error ' + err.code);
objRead.errorCode = err.code;
throw e;
}
return factory;
}]);
我在控制器内的调用就像
var objReturn = fileReadFactory.fileRead('myProfile');
alert(objReturn.status);
alert(JSON.parse(objReturn.setReadObject));
if(objReturn.status){
var obj= JSON.parse(objReturn.setReadObject);
// alert(obj);
// alert('Inside Object World');
$scope.myprofile = obj;
}
我没有得到 if 块。那么我该如何管理回电呢?
尝试调用您的服务并在 then() 函数中执行警报。您还应该阅读有关承诺的信息:http://andyshora.com/promises-angularjs-explained-as-cartoon.html
var objReturn = fileReadFactory.fileRead('myProfile').then(function(){
alert(objReturn.status);
alert(JSON.parse(objReturn.setReadObject));
if(objReturn.status){
var obj= JSON.parse(objReturn.setReadObject);
// alert(obj);
// alert('Inside Object World');
$scope.myprofile = obj;
}
});
相关文章:
- 使用Javascript中的回调处理变量分配
- 如何通过bxSlider回调api处理事件
- 如何处理Ajax.BeginForm()OnError OnFailure回调
- 如何在事件处理程序的回调中防止Default
- 可以clearTimeout删除JavaScript中已触发超时事件的未处理回调
- JQuery $.getJSON() 不能正确处理回调
- 覆盖 jquery .load() 函数 - 处理回调
- 如何在 angularjs 中处理回调
- socket.io 中处理回调的正确方法
- 如何在 AngularJs 中处理回调函数
- 如何正确处理回调堆栈
- node.js如何处理回调中对象和变量的更改
- 链接多个承诺(处理回调)
- cancelAnimationFrame如何处理回调中的副作用
- 如何在ejb中处理回调响应
- C#处理回调结果
- RequestJS实际上是如何处理回调的
- JS中处理回调的策略
- 当调用框架(和执行上下文)消失时处理回调
- javascript是如何单线程处理回调的