ApolloServer是否能在数组中存在无效元素时返回部分成功?
创始人
2024-09-09 13:01:08
0

可以在Apollo Server中使用GraphQL错误来处理部分成功的情况。首先要定义错误类型。例如:

const { ApolloError } = require('apollo-server');

const INVALID_ARRAY_ELEMENT = 'INVALID_ARRAY_ELEMENT';

class InvalidArrayElementError extends ApolloError {
  constructor(message) {
    super(message, INVALID_ARRAY_ELEMENT);

    Object.defineProperty(this, 'name', { value: 'InvalidArrayElementError' });
  }
}

然后在resolver中使用该错误类型来处理无效元素。例如:

const resolvers = {
  Query: {
    arrayOfNumbers: (_, { numbers }) => {
      const result = [];

      for (let i = 0; i < numbers.length; i++) {
        if (isNaN(numbers[i])) {
          result.push(new InvalidArrayElementError(`Invalid number: ${numbers[i]}`));
        } else {
          result.push(numbers[i]);
        }
      }

      if (result.some(error => error instanceof InvalidArrayElementError)) {
        throw {
          errors: result.filter(error => error instanceof InvalidArrayElementError),
          data: null,
        };
      }

      return result;
    },
  },
};

如此一来,当数组中有无效元素时,就会抛出错误,并将data属性设置为null。如果没有无效元素,则返回正常的结果数组。

相关内容

热门资讯

透视规律(微扑克ai辅助器苹果... 透视规律(微扑克ai辅助器苹果版)云扑克确实真的有挂(详细辅助线上教程)一贯是真的有挂是一款可以让一...
透视有挂(wepower有外挂... 透视有挂(wepower有外挂)wpk有修改器吗(详细辅助揭秘教程)一直真的有挂是一款可以让一直输的...
wepokeai代打!德扑ai... wepokeai代打!德扑ai智能,(wpk德州)最初真的有挂(详细透视wpk教程);玩家必备必赢加...
透视苹果版(智星德州菠萝偷偷看... 透视苹果版(智星德州菠萝偷偷看牌功能)来玩德州app外挂(详细辅助系统教程)最初真的是有挂1、超多福...
wpk德州透视辅助!微扑克到底... wpk德州透视辅助!微扑克到底有没有辅助器,(nzt德州)原来有挂(详细辅助科技教程);支持2-10...
透视私人局(德州之星有辅助挂)... 透视私人局(德州之星有辅助挂)德扑输赢概率计算器(详细辅助详细教程)原本存在有挂是一款可以让一直输的...
德扑起手牌胜率图!wpk ai... 德扑起手牌胜率图!wpk ai辅助,(aapoKer)往昔有挂(详细辅助安装教程);德扑起手牌胜率图...
透视攻略(aapoker有外挂... 透视攻略(aapoker有外挂)德州之星ai软件(详细辅助切实教程)好像是有挂1、很好的工具软件,可...
wepoke插件!微扑克有保险... wepoke插件!微扑克有保险吗,(wPk)先前真的有挂(详细透视力荐教程);人气非常高,ai更新快...
透视软件(德扑之星辅助器购买)... 透视软件(德扑之星辅助器购买)德扑之星app发牌规律(详细辅助2025新版教程)一直存在有挂(1)透...