Comments (4)
i solved the problem !
package main
import (
"errors"
"fmt"
"github.com/chebyrash/promise"
"io/ioutil"
"net/http"
"time"
)
func main() {
var requestPromise = promise.New(func(resolve func(interface{}), reject func(error)) {
go func() {
time.Sleep(2 * time.Second)
reject(errors.New("time out error"))
}()
resp, err := http.Get("https://httpbin.org/ip")
defer resp.Body.Close()
if err != nil {
reject(err)
return
}
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
reject(err)
return
}
resolve(body)
})
// Parse JSON body in async manner
parsed, err := requestPromise.Await()
if err != nil {
fmt.Printf("Error: %s\n", err.Error())
return
}
ip := fmt.Sprintf("%s", parsed)
fmt.Println(ip)
}
from promise.
Hi,
Have a look at https://golang.org/pkg/net/http/#Client
The easiest way is to use is the Timeout
field of http.Client
c := &http.Client{
Timeout: 15 * time.Second,
}
resp, err := c.Get("https://httpbin.org/ip")
Or you can use
go func() {
time.Sleep(2 * time.Second)
reject(errors.New("time out error"))
}()
from promise.
i want to use
promise.Wait(2*time.Second)
how to solve it it's more useful
from promise.
parsed, err := requestPromise.Await( 2 * time.Second )
how to use like this?
from promise.
Related Issues (15)
- Add `AllSettled` method to package. HOT 12
- Promise.all slice
- Promise.all slice HOT 2
- Promise Branching HOT 1
- Any plans to add remainder of JS promise interface to this implementation? HOT 5
- Range over promise.All HOT 2
- Questions: run in parallel and stop HOT 1
- promise.Any does not exist HOT 3
- why did you want promise/future feature in golang ? HOT 1
- Add `All` method to 'promise' package HOT 2
- The error return bug in promise.All function HOT 2
- Can it support to combined with a goroutine pool as the resource of the future using, like the Future In Java? HOT 2
- Add `Race` method to the package HOT 2
- Refactor tests HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from promise.