gpt4 book ai didi

node.js - 异步系列中的异步 waterfall

转载 作者:搜寻专家 更新时间:2023-11-01 00:11:48 24 4
gpt4 key购买 nike

是否可以在 async.series 中使用 async.waterfall

例如,假设我有一个模块 api,它有两个方法,api.getapi.post,然后是另一个模块从 S3 存储桶下载图像,调整其大小,然后将其放回 S3 存储桶,resizer

我想使用 api.get 发出获取请求并获取 oauth token ,然后触发 resizer 然后才触发 api.post。我不需要在 apiresizer 之间传递任何结果。

到目前为止,我有这样的东西:

async.series([
function get (callback) {
api.get(callback)
},
async.waterfall([
function download (callback) {
S3.get({...}, callback);
},
function transform (response, callback) {
gm(..)
.resize(....)
.toBuffer(...) {
S3.put({...})
}, callback;
]),
function post (callback) {
api.post(callback)
}
], function (err) {
......
});

但它永远不会触发 api.post 并在 S3.put 之后消失。为什么?

最佳答案

绝对有可能。我一直在做同样的事情。它可能会变得有点困惑,因此需要注意这一点。

您的代码未被调用的原因是您需要将 waterfall 包装在另一个函数中。目前你拥有它的方式你的外部 async.series 会尝试调用 async.waterfall 的结果,这可能不会返回函数。

async.series([
function get(callback) {
api.get(callback)
},
function(callback) {
async.waterfall([
function download(callback1) {
S3.get({...
}, callback1);
},
function transform(response, callback1) {
//transform stuff here
return callback1();
},
function post(callback1) {
api.post(callback1)
}
], callback);
}
], function(err) {
......
});

关于node.js - 异步系列中的异步 waterfall ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30106332/

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