gpt4 book ai didi

javascript - 是否有可能在 Q.All 中一次返回所有 "failures"

转载 作者:行者123 更新时间:2023-11-30 17:33:36 24 4
gpt4 key购买 nike

本质上,我有大量的对象要在其上测试网站。我使用下划线将 URL 转换为 HTTP 请求的 promise 数组。一旦失败,链条就会结束(我预料到了这一点)。有没有可能把所有的失败都收集起来,返回给Fail函数呢?还是我必须使用 allSettled 来编写然后解析它?

var Q = require('q')
var _ = require('underscore')
var JSON = require('JSON')
var FS = require("q-io/fs");
var HTTP = require("q-io/http");


FS.read('members.json').then(function(memberJson){
return JSON.parse(memberJson)
}).then(function(memberObjects){
var httpCheckPromises = _.
chain(memberObjects).
first(100).
filter(function(member){
return member.website.toLowerCase().indexOf('www') >= 0
}).
map(function(member){
return HTTP.read(member.website)
}).
value()

return Q.all(httpCheckPromises)
}).then(function(goodRequests){
console.log(goodRequests)
}).fail(function(badRequests){
console.log('bad')
console.log(badRequests)
})

最佳答案

Am I going to have to write this using allSettled and then parse that?

是的,如果您不想在第一次失败的请求时中止。

FS.read('members.json')
.then(JSON.parse)
.then(function(memberObjects){
var httpCheckPromises = _.chain(memberObjects)
.first(100)
.pluck("website")
.filter(function(website){
return website.toLowerCase().indexOf('www') >= 0;
})
.map(HTTP.read)
.value();
return Q.allSettled(httpCheckPromises);
}).then(function(requests) {
var goodRequests = _.chain(requests)
.where({state:"fulfilled"})
.pluck("value")
.value(),
badRequests = _.chain(requests)
.where({state:"rejected"})
.pluck("reason")
.value();
console.log("good:", goodRequests);
console.log("bad:", badRequests);
});

关于javascript - 是否有可能在 Q.All 中一次返回所有 "failures",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22484247/

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