keys := []cacheKey{"aid", aid}
ch := make(chan *Anime, 1)
+ if aid < 1 {
+ ch <- nil
+ close(ch)
+ }
+
ic := make(chan Cacheable, 1)
go func() { ch <- (<-ic).(*Anime); close(ch) }()
if intentMap.Intent(ic, keys...) {
}
if !cache.CheckValid(keys...) {
- intentMap.Notify((*Anime)(nil), keys...)
+ intentMap.NotifyClose((*Anime)(nil), keys...)
return ch
}
anime := aid.Anime()
if !anime.IsStale() {
- intentMap.Notify(anime, keys...)
+ intentMap.NotifyClose(anime, keys...)
return ch
}
if ok {
cache.Set(anime, keys...)
}
- intentMap.Notify(anime, keys...)
+ intentMap.NotifyClose(anime, keys...)
} else {
- intentMap.Notify((*Anime)(nil), keys...)
+ intentMap.NotifyClose((*Anime)(nil), keys...)
}
}()
return ch