gpt4 book ai didi

node.js - 向异步 waterfall 添加异步函数

转载 作者:太空宇宙 更新时间:2023-11-03 21:51:59 25 4
gpt4 key购买 nike

我正在尝试开发一个 NodeJS 应用程序,但它无法按预期执行。我想先执行 downloadIMG,然后执行 featureMatching 并继续执行,直到 for 循环终止。指导我以正确的方式重写代码。

for (var i=0; i<dbImgCount; i++) {
(function(i) {
async.waterfall([
async function downloadIMG(done) {
try {
var options = {
url: FolderPath[i].FolderPath,
dest: '/home/ubuntu/imgCompare/'
}
const { filename, image } = await download.image(options);
image2 = 'image.jpg';
done(null, 'hi');
} catch (e) {
console.error(e)
}
},
async function featureMatching(a, done){
const img1 = cv.imread(image1);
const img = 'image.jpg';
const img2 = cv.imread(img);
const orbMatchesImg = matchFeatures({
img1,
img2,
detector: new cv.ORBDetector(),
matchFunc: cv.matchBruteForceHamming
},
(console.log(image1+','+img))
);
done(null);
}
],
function (err) {});
})(i);
}

最佳答案

here 得到答案。通过从异步函数返回 args 作为数组,可以在异步 waterfall 中使用异步函数。

像这样

  async.waterfall([
// ...
async function (arg1, arg2) {
//...
const arg3 = await foo()

return [arg1, arg2, arg3] //USE THIS, OTHERWISE 2ND fn WON'T WORK
},
function ([arg1, arg2, arg3], callback) {
//...
}
],function (err) {});

关于node.js - 向异步 waterfall 添加异步函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51519330/

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