我有一些Property
让 AJAX 请求着火了。但是,一旦404
达到案例,我想终止这个流,但我不知道该怎么做。下面是代码:
// load :: EventStream (Int -> Int)
load = $("#loadimg")
.asEventStream("click")
.map(function(e){ return function(x){ return x + 1 }})
// loadP :: Property Int
loadP = load.scan(1, function(x,f){ return f(x) })
// loadImg :: Property (HttpRequest -> Either String String)
loadImg = loadP
.flatMapLatest(function(i){ return Bacon.fromPromise(imgLoader(i) )})
.mapError("")
// imgLoader :: Int -> HttpRequest String
imgLoader = function(id){
// pretend src, root and fmt are global variables
var url = src + root + id + fmt
return $.ajax({
type : "GET",
url : url,
})
.then(function(ys){ return url })
}
// EventStreamT (State Dom) String
loadImg.onValue(function(url){
if (url.length == 0) return url
else return appendImg("#imgs", "name", url);
})
将这个“中止培根属性”代码放在副作用所在的最后一个函数中对我来说没有意义,但我还能在哪里测试404
案例?我将如何终止线程?