承诺链

时间:2020-05-05 19:13:20

标签: javascript node.js

我从节点开始,但是有一个问题,我只需要按节点版本进行promise,我需要与以前的promise的结果进行比较,但是不起作用,看来我的代码是结构不好,这里的代码谢谢...

ListarUsuariosMaxDate.then(response => {
    return ListaconCondicionProceso(response);
}).then(data2 => {
    return filtrarPagos.then(data3 => {

            let result = data3.filter(elem => data2.filter(elem2 => elem.user == elem2.user_id && elem.createdAt > elem2.maximo).length > 0);

            return result;

        }).then(data5 => {

            console.log(data5)

        })

    })


})

结果(data5)为空...很抱歉该错误...

1 个答案:

答案 0 :(得分:0)

我可以做一些改变并起作用,但是我不明白为什么。我在先前的代码中使用async并等待此结构,并且它起作用了:

  async function comparacionTotalProceso(listaTotal, listaFiltrada) {


            let result = listaFiltrada.filter(elem => listaTotal.filter(elem2 => elem.user == elem2.user_id && elem.createdAt > elem2.maximo).length > 0);

            return result;
        });
    }

但是现在对于节点版本,我需要将所有内容都更改为promise,我做到了:

...

.then(data2 => {
        return filtrarPagos.then(data3 => {

            let result = data2.map(elem => data3.map(elem2 => elem.user == elem2.user_id && elem.createdAt > elem2.maximo).length > 0? elem:null);

            return result;

        })

终于工作了,更改了map和return elem的过滤器,但我不知道为什么。