我使用异步瀑布,为什么回调不是函数?



我明白这个:

错误:

类型错误:回调不是函数

法典:

var async = require('async');
async.waterfall([
(callback) => {
callback(null, 'test');
},
async (value1, callback) => {
const data = await send("http://google.com/search?q="+value1);
callback(null, data); //TypeError: cb is not a function
}
], (err) => {
if (err) throw new Error(err);
});

为什么会是错误? 即使"回调"是 async.waterfall 的默认函数。 在异步函数中不可能吗 我把异步函数放进去?

当您在瀑布内的函数中使用async时,没有callback参数。而不是调用callback(null, data),您可以解决data

async.waterfall([
(callback) => {
callback(null, 'test');
},
async value1 => {
const data = await send("http://google.com");
return data;
},
(value1, callback) => {
// value1 is the resolve data from the async function
}
], (err) => {
if (err) throw new Error(err);
});

从文档中:

无论我们在哪里接受 Node 风格的异步函数,我们也直接 接受 ES2017 异步函数。在这种情况下,异步函数将 不传递最终回调参数,任何抛出的错误都将 用作隐式回调的 err 参数,并返回 值将用作结果值。(即拒绝 返回的 Promise 成为 err 回调参数,并且已解决 值成为结果。

相关内容

  • 没有找到相关文章

最新更新