gpt4 book ai didi

javascript - 异步 npm 模块中仅错误回调

转载 作者:行者123 更新时间:2023-12-03 01:59:47 26 4
gpt4 key购买 nike

我正在使用这个async异步请求模块 借助另一个模块的网页内容 request ,因为这是一个异步调用。 使用async.each方法,用于从每个链接请求数据, scrap()也成功返回结果函数(我写它是为了废弃返回的 html 数据 并将其作为各州燃油价格数组返回)。

现在,问题是当我尝试将价格返回到 async.each() 时使用cb(null, prices) ,它显示console.log(prices)undefined 但登录 _check_fuel_prices() , 工作正常。看来回调只适用于一个参数 (或仅错误回调,如上面 async.each 链接中的示例所示)。如果我想返回价格怎么办(我可以用 cb(prices) 之类的错误来更改它,但我也想记录错误)。

router.get('/someRoute', (req, res, next) => {
const fuels = ['diesel', 'petrol'];
async.each(fuels, _check_fuel_prices, (err, prices) => {
if (!err) {
res.statusCode = 200;
console.log(prices);
return res.json(prices);
}
res.statusCode = 400;
return res.json(err);
});

function _check_fuel_prices(fuel, cb) {
let prices = '';
const url_string = 'http://some.url/';
request(`${url_string}-${fuel}-price/`, (error, response, html) => {
if (error) {
cb(error, null);
return;
}
if (response.statusCode === 404) {
console.log(response.statusCode);
cb('UNABLE TO FIND PAGE', null);
return;
}
prices = scrap(html, fuel);
console.log(prices);
cb(null, prices);
return;
});
}
});

最佳答案

@generalhenry指出,我能够通过使用 async.map 获取prices,它返回错误第一个回调,而不是仅返回错误 async.series > 稍微修改一下代码就可以在这里使用。

关于javascript - 异步 npm 模块中仅错误回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50087750/

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