javascript - 如何将 Q Promise 与下划线过滤器一起使用

标签 javascript promise underscore.js q

我发现了类似的问题和不同的建议,但我无法让它发挥作用。有人说你做不到,而另一些人则给出了很长的解决方案来使其发挥作用。它正在被返回且未定义。

服务

 filterSubdivisions: (response) => {
        var arry = [];
        let deferred = Q.defer();
        arry = _.filter(response, (item) => {
            if (item.status === 'A') {
                item.color = 80;
                item.status = 'Active';
                return item
            } else {
                item.color = 255;
                item.status = 'Future';
                return item
            }
        });

        deferred.resolve(arry);
        return deferred.promise;
    }

服务电话

   AuthService.get().then((result) => {
        SubdivisionService.getSubdivisions(result.userId, result.token)
            .then((response) => {
                if (response)
                    SubdivisionService.filterSubdivisions(response)
            })
            .then((res) => {
                if (res)
                SubdivisionService.loopSubdivisions(res)
            })
            .then((response) => {
                if (response)
                StorageService.set('Subdivisions', response)
            })
            .then(() => me.onGoHome())
            .catch(error => {
                AlertService.error('subdivisions')
                    .then((error) => ErrorService.post(error))
                    .then(() => me.onGoHome())
            })

    })

最佳答案

我不确定为什么你有 filterSubdivisions() 返回一个 promise ,特别是如果你立即解决它而不是执行任何类型的异步操作。无论如何,您永远不会将 .then() 回调附加到该 promise 。

您正在使用过滤后的数组来解析它,但永远不会有回调来获取该数据。

关于javascript - 如何将 Q Promise 与下划线过滤器一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37442318/

相关文章:

javascript - 如何使用 Promise 异步调用此函数

json - 使用主干模型使用下划线模板引擎渲染 html 表

javascript - Python 请求句柄 url 包含回调

javascript - 帐单地址与送货地址相同 jQuery

javascript - 使用 JavaScript 获取远程代码/文本?

javascript - Angular 2 将数据传递到 for 循环中

javascript - angularjs deferred 在回调中不起作用

javascript - 从对象键创建正则表达式

javascript - 将多个单独的对象转换为 1 个对象数组

javascript - <li> 使用 jquery 可排序 onDrop 事件进行克隆