У меня есть Property
, который подготавливает запросы AJAX. Однако, как только будет достигнут случай 404
, я хотел бы завершить этот поток, но я не уверен, как это сделать. Ниже приведен код:Как вы отменяете свойство Bacon.js, которое делает запрос 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
кейс? И как бы я прервал нить?