gpt4 book ai didi

javascript - 一旦到达 404,如何中止正在发出 AJAX 请求的 Bacon.js 属性?

转载 作者:行者123 更新时间:2023-11-28 20:18:43 25 4
gpt4 key购买 nike

我有一些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 情况?我该如何终止线程?

最佳答案

在 Bacon.js 0.6.17 中,您可以将谓词函数传递给 endOnError,这样您就可以执行以下操作

加载图像=加载P .flatMapLatest(function(i){ return Bacon.fromPromise(imgLoader(i) )}) .endOnError(function(error) { 返回 error.status == 404 })

关于javascript - 一旦到达 404,如何中止正在发出 AJAX 请求的 Bacon.js 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18750329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com