如何中止 Bacon.js 属性,该属性在到达 404 后发出 AJAX 请求
How do you abort a Bacon.js Property that is making an AJAX request once 404 is reached?
我有一些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
情况?我将如何终止线程?
在培根.js 0.6.17 中,你可以将谓词函数传递给endOnError
,所以你可以做
负载Img = 负载P .flatMapLatest(function(i){ return Bacon.fromPromise(imgLoader(i) )}) .endOnError(function(error) { return error.status == 404 })
您可以简单地说.endOnError()
而不是.mapError("")
以任何错误结束。
如果需要对每种错误类型进行更具体的处理,可以
loadImg404 = loadImg.mapError(".status").filter(function(status) { return status==404 })
...
loadImg.takeUntil(loadImg404).onValue(..)
相关文章:
- 哪个 JavaScript 库在请求对象上设置 _parsedUrl 属性
- Ember:当子控制器同时观察到父控制器触发请求的相同属性时
- 错误:在 Firefox 中访问 AJAX 请求的属性“nodeType”的权限被拒绝
- 使用Javascript重定向并设置请求属性
- 尝试更改HTML属性时出现奇怪的get请求
- 如何在JavaScript中将JSP请求属性转换为字符串并将其分配给对象
- 在提交表格时IE8赢得了't将来自输入的属性以外的属性添加到请求中
- 如何在 ajax 请求的回调中设置 ngInclude 元素的 src 属性
- 从 XMLHttpRequest 对象获取请求属性
- Drupal 7 Field API:如何以编程方式发送表单元素属性 #ajax 指定的AJAX请求
- 在 Laravel 5.2 的发布请求中传递 Algolia id 属性而不是 Name Atributre
- 来自 jsp 和 javascript 中的请求属性的对象索引数组
- 当对服务器的 ajax 请求失败时如何使用 defaults 属性
- 从数据属性动态获取 JQuery Ajax 请求的 URL
- Html5 数据属性在 ajax 请求后未更新
- 设置属性但也发送请求的方法的正确名称
- 如何中止 Bacon.js 属性,该属性在到达 404 后发出 AJAX 请求
- 具有对象类型的参数,其属性名称/值各不相同.需要在GET请求中通过URL发送道具名称/值
- 如何使用javascript使用请求中的属性
- 富人脸 vs 素数面孔:无法读取未定义的属性“请求”