javascript - 处理数据的多个步骤,JS/Angular 有什么好的模式?

标签 javascript angularjs angular-promise

想象一下我们只需几个步骤来处理数据。首先我们下载它,然后我们做其他事情等等很多次。 C# 代码看起来像是几行 - 每个步骤一行。

据我现在了解,在 JS/Angular 中它看起来像这样:

function prepateAndGo() {

    loadData()
        .$promise.then((loadedData) => {

            prepareData(loadedData).$promise().then((preparedData) => {
           
                preprocessData(preparedData).$promise().then((preprocessedData) => {

                    andDoSmthElse(preprocessedData).$promise().then((andDoSmthElseData) => {

                        makeupData(andDoSmthElseData).$promise().then((makeupedData) => {

                            Console.log('finally, everything is loaded and processed, lets go');

                        });
                    });
                });
            });
        });
}

还有更漂亮的图案吗?对付意大利面条的常见解决方案是什么?

最佳答案

您需要做的是创建返回 promise 的实用函数。例如:

function prepareData(data){
    // do something with data and return a promise
    return $q.when(data);        
}

然后你就可以很好地链接这些 promise 。例如:

loadData()
    .then(prepareData)
    .then(preprocessData)
    .then(andDoSmthElse)
    .then(makeupData)
    .then(function(madeData){
        Console.log('finally, everything is loaded and processed, lets go');
    });

注意:代码不在我的脑海中,但应该可以帮助您入门

关于javascript - 处理数据的多个步骤,JS/Angular 有什么好的模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39638227/

相关文章:

javascript - 如何将默认的谷歌地图信息窗口滚动条移动到关闭按钮的右侧?

javascript - 如何使用 useEffect 钩子(Hook)和依赖列表作为对象数组中的特定字段?

javascript - 如何为带有一些特殊符号的数字创建 JavaScript 正则表达式

javascript - 链接 Angular promise 拒绝

javascript - jquery动态单选按钮验证

html - Bootstrap 响应式产品网格

javascript - AngularJS - 文本字段完成后调用函数

javascript - Angular 过滤器将所有下划线替换为空格

javascript - 用 Fetch API 替换 $http

javascript - 解析 Html 中的 promise 值 -> Ctrl -> Factory -> 延迟对象上的资源链