你正在使用的Go版本是什么( go version
)?
$ go version
go version devel go1.21-fe10464358 Fri May 5 13:20:58 2023 +0000 linux/amd64
这个问题在最新版本的发布中是否重现?
否。在执行了 git bisect
之后,我得到了:
4c5d97990e4a39bd3e903f8e318b7234db3ba91f is the first bad commit
commit 4c5d97990e4a39bd3e903f8e318b7234db3ba91f
Author: Johan Brandhorst-Satzkorn <johan.brandhorst@gmail.com>
Date: Fri Jan 27 22:50:54 2023 -0800
net/http: disable fetch on NodeJS
这是第一个破坏WASM中的http请求的提交。
你正在使用什么操作系统和处理器架构( go env
)?
go env
输出
$ go env
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="..."
GOENV="..."
GOEXE=""
GOEXPERIMENT=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="..."
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="..."
GOPRIVATE=""
GOPROXY=" [https://proxy.golang.org,direct](https://proxy.golang.org,direct) "
GOROOT="..."
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/.../go/pkg/tool/linux_amd64"
GOVCS=""
GOVERSION="devel go1.21-fe10464358 Fri May 5 13:20:58 2023 +0000"
GCCGO="gccgo"
GOAMD64="v1"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/dev/null"
GOWORK=""
CGO_CFLAGS="-O2 -g"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-O2 -g"
CGO_FFLAGS="-O2 -g"
CGO_LDFLAGS="-O2 -g"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=/tmp/go-build3099992878=/tmp/go-build -gno-record-gcc-switches"
你做了什么?
使用以下命令编译WASM二进制文件:
GOOS=js GOARCH=wasm $GOROOT/bin/go build -o main.wasm main.go
然后从WASM二进制文件中调用 http.Client.Do
,它返回以下错误:
http request error: Post "https://some.host/httpgrpc": dial tcp: lookup some.host: Protocol not available
你期望看到什么?
要执行的http查询。
你看到了什么?
一个错误,说tcp不可用。
2条答案
按热度按时间wrrgggsh1#
cc @golang/wasm
pxyaymoc2#
在go1.22-2eca0b1和node v20.4.0上遇到了相同的问题。以下是详细信息。
Go代码(GOARCH=wasm,GOOS=js):
JavaScript/Node.js代码:
输出:
在同一配置下,当前最新版本的go1.20.6可以正常工作。