这不是一个大问题,但是,我发现编写代码时有时会非常“丑陋”:
angular.module('xxx', []).controller('xxxCtrl', function() {
someAsyncCall(params, function callback(result) {
//millions of lines here dependent on "result".
}
})
我没有在这里使用路由,所以我不能使用“resolve”。
还有其他方法可以避免吗?
答案 0 :(得分:2)
使用$ q扩展Patrick的评论,然后您可以执行以下模式:
/* handlers, parsers, ... */
function parseSomeAsyncResult() { ... }
...
function displaySomeAsyncResult() { ... }
function errorHandler() { ... }
/* now we can chain together as many handlers as needed to process our results */
someAsyncCall(params)
.then(parseSomeAsyncResult)
.then(displaySomeAsyncResult)
.catch(errorHandler);