看了就会,手写Promise原理,最通俗易懂的版本!!!。 resolve和reject 咱们来看一段Promise的代码: let p1 = new Promise((resolve, reject) => { resolve('成功') reject('失败') }) console.log('p1', p1) let p2 = new Promise((resolve, reject) => {
https://github.com/go-redis/redis package main import ( "context" "fmt" "time" "github.com/go-redis/redis/v8" ) var ( ctx context.Context rdb *redis.Client ) func init() { rdb = redis.NewClient(
Server: package main import ( "fmt" "net" ) func main() { fmt.Println("net.Listen") listen, err := net.Listen("tcp", "0.0.0.0:5555") if err != nil { fmt.Println(err) return } def
在还原数据库的时候遇到问题:[ERR] 2006 - MySQL server has gone away [ERR] -- MySQL dump 10.13 Distrib 5.6.42, for 1 问题 在还原数据库的时候遇到问题: [SQL] Query 2205_all star [ERR] 2006 - MySQL server has gone awa [ERR] -- MySQL dump 10.13 Distrib 5.6.42, for L
目录1.TCP网络编程2.HTTP网络编程2.1 HTTP2.2 HTTPS3.RPC网络编程3.1 基于TCP的RPC3.2 基于HTTP的RPC3.3 基于jsonRpc的RPC golang net包 1.TCP网络编程 server.go package main import ( "fmt" "log" "net" "os" "time" ) func main() { // 建
直接上代码 package main import ( "errors" "fmt" "golang.org/x/sync/errgroup" ) func main() { group := new(errgroup.Group) nums := []int{0, 1, -1, 2} ch := make(chan int) for _, num := range nums {
获取utxos 请求 curl -X POST --data '{ "jsonrpc":"2.0", "id" :1, "method" :"avm.getUTXOs", "params" :{ "addresses":["X-avax1yzt57wd8me6xmy3t42lz8m5lg6yr
defer func main() { //defer 延迟关键字,可以用于修饰语句 函数,确保在退出时执行 //一般用于资源清理工作 //解锁 关闭文件 //在一个函数中多次调用defer,先入后出 Readfile("test/var_var.go") } func Readfile(filename string) { //go一般把错误放到最后一个参数返回
服务器demo 测试路由 浏览器url输入不能测试POST请求!!!看清楚是get请求再测 login:1 GET http://127.0.0.1:8080/douyin/user/login 404 (Not Found) 修改完代码要马上重启服务 这是一个结构体(go里省略分号),Response(这也是结构体,里面有StatusCode,StatusMsg),一部分是自定义数据
在上一篇中,主要分析了package.json和application.js文件,本文会分析剩下的几个文件。 一、context.js 在context.js中,会处理错误,cookie,JSON格式化等。 1)cookie 在处理cookie时,创建了一个Symbol类型的key,注意Symbol具有唯一性的特点,即 Symbol('context#cookies') ===
repeated使用返回商品数组 repeated是一个修饰符,返回字段可以重复任意多次(包括0次),可以认为是一个数组(切片) proto文件定义 syntax = "proto3"; // 使用的proto 3的版本 package services; // 生成go文件的包名 option go_package = "../services"; // 指定生成go文件所在当前
grpc简单应用 一、gRPC主要有4种模式 gRPC主要有4种请求和响应模式,分别是简单模式(Simple RPC)、服务端流式(Server-side streaming RPC)、客户端流式(Client-side streaming RPC)、和双向流式(Bidirectional streaming RPC)。 简单模式(Simple RPC):客户端发起请求并等待服务端响应。
服务端流式RPC 一、前言 当数据量大或者需要不断传输数据时候,我们应该使用流式RPC,它允许我们边处理边传输数据。本篇先介绍服务端流式RPC。 服务端流式RPC:客户端发送请求到服务器,拿到一个流去读取返回的消息序列。 客户端读取返回的流,直到里面没有任何消息。 情景模拟:实时获取股票
Go gRPC教程-客户端流式gRPC 一、前言 上一篇介绍了服务端流式RPC,客户端发送请求到服务器,拿到一个流去读取返回的消息序列。 客户端读取返回的流的数据。本篇将介绍客户端流式RPC。 客户端流式RPC:与服务端流式RPC相反,客户端不断的向服务端发送数据流,而在发送结束后,由服务端返回一
Go gRPC教程-双向流式RPC 一、前言 上一篇介绍了客户端流式RPC,客户端不断的向服务端发送数据流,在发送结束或流关闭后,由服务端返回一个响应。本篇将介绍双向流式RPC。 双向流式RPC:客户端和服务端双方使用读写流去发送一个消息序列,两个流独立操作,双方可以同时发送和同时接收。 情景
grpc-tts证书认证 一、前言 前面篇章的gRPC都是明文传输的,容易被篡改数据。本章将介绍如何为gRPC添加安全机制,包括TLS证书认证和Token认证。 二、TLS证书认证 什么是TLS TLS(Transport Layer Security,安全传输层),TLS是建立在传输层TCP协议之上的协议,服务于应用层,它的前身是SSL(Secur
Go gRPC-超时设置 一、前言 gRPC默认的请求的超时时间是很长的,当你没有设置请求超时时间时,所有在运行的请求都占用大量资源且可能运行很长的时间,导致服务资源损耗过高,使得后来的请求响应过慢,甚至会引起整个进程崩溃。 为了避免这种情况,我们的服务应该设置超时时间。前面的提到,当客
grpc-自定义token认证 一、前言 前面篇章的gRPC都是明文传输的,容易被篡改数据。本章将介绍如何为gRPC添加安全机制,Token认证。 官方grpc-eg 源码 二、新建proto文件 主要是定义我们服务的方法以及数据格式,创建simple.proto文件。 1.定义发送消息的信息 message SimpleRequest{
创建文件 import ( "fmt" "os" ) func main() { //创建文件时,需要指定文件的存储路径以及文件名称 file, err := os.Create("D:/Test/a.txt") if err != nil { fmt.Println(err) } //对文件进行操作 //关闭 defer表示延迟执行 d
gRPC有四种通信⽅式,分别是:简单 RPC(Unary RPC)、服务端流式 RPC (Server streaming RPC)、客户端流式 RPC (Clientstreaming RPC)、双向流式 RPC(Bi-directional streaming RPC)。它们主要有以下特点: 服务类型 特点 简单 RPC ⼀般的rpc调⽤,传⼊⼀个请求对象,返回⼀个返回对象 服
npm ERR! code ERESOLVEnpm ERR! ERESOLVE unable to resolve dependency treenpm ERR!npm ERR! While resolving: codemirror-test@0.1.0npm ERR! Found: react@17.0.1npm ERR! node_modules/reactnpm ERR! react@"^17.0.1" from the root projectnpm ERR!npm ER
// 微信登录 APP wxLogin() { this.auths.authorize((e) => { console.log(e); this.auths.login(e1 => { console.log(e1, 2); // this.auths.getUserInfo(info=>{ // console.log(info,3);
当有比较复杂的替换字符串的需求时候 可以使用我封装的这个函数,通过正则表达式把字符串替换掉 func ReplaceStringByRegex(str, rule, replace string) (string, error) { reg, err := regexp.Compile(rule) if reg == nil || err != nil { return "", errors.Ne
启动mysql服务器即可,步骤如下: 1、右击计算机 2、点击管理 3、双击服务和应用程序 4、双击服务服务 5、找到mysql,启动此服务 (win7、win10操作相同) 2022-5-13开通博客,坚持写!加油!
接到策划需求,需要将移动端开发的游戏移植到steam平台。奈何策划水平有点次,信誓旦旦的说什么steam支付是使用dlc支付的,使用什么dlc币(窝里个大草),马的,不懂就别瞎咧咧,净给老子挖坑。 查了一圈资料,在steam后台配置若干steam相关dlc相关,就是没有相关与dlc相关支付接口,这时候才意识到公司