簡體   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