繁体   English   中英

承诺链

[英]Promises chaining

我从节点开始,我有一个问题,我只需要通过节点版本的承诺来做到这一点,我需要与之前承诺的结果进行比较,但不起作用,似乎我的代码结构很差,这里的代码谢谢...

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)是空的......对不起这个错误......

我可以做一些改变和工作,但我不明白为什么。 我在之前的代码中使用了 async 和 await 这个结构,它起作用了:

  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;
        });
    }

但现在对于节点版本,我需要将所有内容更改为承诺,我这样做了:

...

.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 的过滤器并返回 elem,但我不知道为什么。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM