小编eat*_*000的帖子

在javascript中链接过滤器函数的好方法

我有大量的json对象数组,我需要根据多个用户选择输入进行过滤.目前我正在将过滤器功能链接在一起,但我感觉这很可能不是最有效的方法.

目前我这样做:

var filtered = data.filter(function(data) {
    return Conditional1
  })
  .filter(function(data) {
    return Conditional2
  })
  .filter(function(data) {
    return Conditional3
  }) etc...;
Run Code Online (Sandbox Code Playgroud)

虽然(我认为)每次迭代'数据'可能会更少,但我想知道更好的做法是做这样的事情:

var condition1 = Conditional1
var condition2 = Conditional2
var condition3 = Conditional3
etc...

var filtered = data.filter(function(data) {
  return condition1 && condition2 && condition3 && etc...
});
Run Code Online (Sandbox Code Playgroud)

我已经研究了多个高阶函数链,特别是过滤函数 - 但是我没有看到任何关于最佳实践的东西(或者不好的做法,也没有定时和比较我建议的两个).

在一个具有大数据集和许多条件的用例中(我认为它们都相当容易阅读)?

或者也许有一种更有效的方式我缺少(但仍使用高阶函数).

javascript higher-order-functions

7
推荐指数
3
解决办法
4147
查看次数

Apollo GraphQL中带有变量的嵌套查询

我正在使用Apollo服务器,试图为电子商务应用程序构造一个嵌套查询。我正在查询rest api来检索购物篮中的项目。

但是,此请求的响应未包含我们需要的所有产品信息。因此,我尝试使用返回的参数之一作为变量来嵌套其他查询,以获取所需的其他产品信息。

我已经看到了嵌套的查询示例,据我了解(尤其是GraphQL和Apollo的新手),这是GraphQL的优点之一。但是我还没有看到任何嵌套查询依赖于父查询的返回值的示例。

//typeDefs
const typeDefs = gql`
    type Product {
        id: ID
        name: String
        sku: String
        length: Float
    }
    type CartItem {
        id: ID
        product_id: ID
        quantity: Int
        product(product_id: ID!): Product
    }
    type Query {
        getProduct(id: ID!): Product
        getCartItems(id: ID!): [CartItem]
    }
`;
// resolvers
const processResponse = (resolved) => {
    try {
        const { data } = resolved;
        return data;
    } catch (error) {
        return error;
    }
};
const resolvers = {
    Query: {
        getProduct: async (parent, …
Run Code Online (Sandbox Code Playgroud)

graphql apollo-server

5
推荐指数
1
解决办法
1400
查看次数

无法从 HTTPS 函数触发 Firebase 发布/订阅功能

我创建了两个 Firebase 函数 - 一个是 HTTPS,我在其中向主题发布消息,另一个是 pub/sub 函数,在其中我响应发布到该主题的消息。

testPubSub.ts

import { pubsub } from "firebase-functions";
export const testPubSub = pubsub
  .topic("high-scores")
  .onPublish(async (message, context) => {
    console.log("hit test pubsub");
    return null;
  });
Run Code Online (Sandbox Code Playgroud)

testHttps.ts

import { https } from "firebase-functions";
import { messaging } from "firebase-admin";

export const testHookEndpoint = https.onRequest(async (request, response) => {
  const payload = {
    notification: {
      title: "Test title",
      body: "test body"
    }
  };

  const pubsubResponse = await messaging().sendToTopic("high-scores", payload);
  console.log("response from pubsub", pubsubResponse);
  response.send("success");
}); …
Run Code Online (Sandbox Code Playgroud)

firebase google-cloud-pubsub google-cloud-functions

2
推荐指数
1
解决办法
576
查看次数