包 apollo-link-http 中的新 HttpLink 和 createHttpLink 之间的区别
Differences between new HttpLink and createHttpLink from package apollo-link-http
教程中
提供了 new HttpLink
语法,但在官方文档中
函数 createHttpLink
已应用。
None 这两个来源描述了这些方法之间的差异。
两者没有本质区别
如果您查看 apollo-link-http
包源 here,您可以看到导出的 createHttpLink
方法 returns ApolloLink
的新实例class 使用您传递给 createHttpLink
的选项进行初始化(第 62-194 行)。
在同一文件的末尾,您可以看到该包还导出了 HttpLink
class,它扩展了 ApolloLink
class(第 256- 261):
export class HttpLink extends ApolloLink {
public requester: RequestHandler;
constructor(opts?: HttpLink.Options) {
super(createHttpLink(opts).request);
}
}
从上面的代码可以看出,当你通过创建HttpLink
class的新实例来创建apollo httplink时,你传递给构造函数的选项在内部传递给 createHttpLink
,其中 returns 如上所述 ApolloLink
的一个实例,并且该实例的 RequestHandler
传递给(即复制)到新的 HttpLink
实例的父实例,它也是 ApolloLink
的实例(请参阅第 96-124 行 here 了解 ApolloLink
自己的构造函数)。
注意 apollo-link-http
包自己的 docs NOT 提到 new HttpLink
语法,所以我会坚持 createHttpLink
用于将来兼容性的语法。
教程中
提供了 new HttpLink
语法,但在官方文档中
函数 createHttpLink
已应用。
None 这两个来源描述了这些方法之间的差异。
两者没有本质区别
如果您查看 apollo-link-http
包源 here,您可以看到导出的 createHttpLink
方法 returns ApolloLink
的新实例class 使用您传递给 createHttpLink
的选项进行初始化(第 62-194 行)。
在同一文件的末尾,您可以看到该包还导出了 HttpLink
class,它扩展了 ApolloLink
class(第 256- 261):
export class HttpLink extends ApolloLink {
public requester: RequestHandler;
constructor(opts?: HttpLink.Options) {
super(createHttpLink(opts).request);
}
}
从上面的代码可以看出,当你通过创建HttpLink
class的新实例来创建apollo httplink时,你传递给构造函数的选项在内部传递给 createHttpLink
,其中 returns 如上所述 ApolloLink
的一个实例,并且该实例的 RequestHandler
传递给(即复制)到新的 HttpLink
实例的父实例,它也是 ApolloLink
的实例(请参阅第 96-124 行 here 了解 ApolloLink
自己的构造函数)。
注意 apollo-link-http
包自己的 docs NOT 提到 new HttpLink
语法,所以我会坚持 createHttpLink
用于将来兼容性的语法。