J'ai un morceau de code qui écrit par lodash comme ci-dessous:En utilisant Ramda pour gérer la promesse et attendre
const profit =
price -
_.sumBy(
await Promise.all(
map(uOrder => uOrder.invoice, await order.upstreamOrders),
),
'amount',
);
Je veux changer à Ramda, après quelques pensée et la lecture de certains Doc j'écris ci-dessous le code:
const resualt = R.compose(
R.pick(['amount']),
await Promise.all(),
R.map(await order.upstreamOrders, uOrder.invoice),
);
bien sûr son mal et ne fonctionne pas, mais sa première approche de et je veux savoir comment gérer une telle situation, en utilisant parfaitement et Ramda de manière fonctionnelle. comment je peux effectuer cela? également commander l'objet est un tableau de exemple suivant:
{
"_id" : ObjectId("59dce1f92d57920d3e62bdbc"),
"updatedAt" : ISODate("2017-10-10T15:06:34.111+0000"),
"createdAt" : ISODate("2017-10-10T15:06:33.996+0000"),
"_customer" : ObjectId("59dce1f92d57920d3e62bd44"),
"_distributor" : ObjectId("59dce1f92d57920d3e62bd39"),
"status" : "NEW",
"cart" : [
{
"count" : NumberInt(1),
"_item" : ObjectId("59dce1f92d57920d3e62bd57"),
"_id" : ObjectId("59dce1f92d57920d3e62bdc1")
},
{
"count" : NumberInt(1),
"_item" : ObjectId("59dce1f92d57920d3e62bd5c"),
"_id" : ObjectId("59dce1f92d57920d3e62bdc0")
},
{
"count" : NumberInt(1),
"_item" : ObjectId("59dce1f92d57920d3e62bd61"),
"_id" : ObjectId("59dce1f92d57920d3e62bdbf")
},
{
"count" : NumberInt(1),
"_item" : ObjectId("59dce1f92d57920d3e62bd66"),
"_id" : ObjectId("59dce1f92d57920d3e62bdbe")
},
{
"count" : NumberInt(1),
"_item" : ObjectId("59dce1f92d57920d3e62bd6b"),
"_id" : ObjectId("59dce1f92d57920d3e62bdbd")
}
],
"_upstreamOrders" : [
"4545643499"
],
"key" : "4592846350",
"__v" : NumberInt(1),
"_invoice" : "0811260909610702"
}
' await' est un mot-clé, pas une fonction qui peut être composée. Vous devez le concevoir en 'then' et travailler explicitement avec les promesses. Au mieux, vous pouvez utiliser ['composeP'] (http://ramdajs.com/docs/#composeP). – Bergi
TBH, je ne vois pas pourquoi vous voudriez utiliser 'composer', il n'y a rien que vous ayez besoin de changer à propos de l'expression' await Promise.all (R.map (uOrder => uOrder.invoice, wait order.upstreamOrders)) ». – Bergi