【发布时间】:2018-08-12 14:29:50
【问题描述】:
我正在尝试使用 async 来实现同步流程。
按照this post中的例子,我确实实现了如下代码:
function listBuckets(accessToken, prefix, callback) {
var url = 'https://www.googleapis.com/storage/v1/b'
request.get({
url: url,
auth: {
'bearer': accessToken
}
}, function(err, res) {
console.log('API Endpoint: ' + url);
console.log('Status Code: ' + res.statusCode);
console.log('Response Body:\n' + res.body);
callback(null, {
statusCode: res.statusCode,
body: res.body
});
});
}
router.get('/list', oauth2.required, (req, res, next) => {
var operations = [];
operations.push(listBuckets(req.user.accessToken, 'myPrefix', callback));
async.series(operations, function (err, results) {
const statusCode = results[0].statusCode;
const body = results[0].body;
});
});
但是,我收到以下错误:ReferenceError: callback is not defined。
你能帮我指出我做错了什么吗?
【问题讨论】:
-
错误是发生在您的代码上还是其他地方?编辑:实际上刚刚意识到问题出在哪里,哈哈
-
无法真正得到比该错误消息更清晰的信息...
callback未在operations.push(listBuckets(req.user.accessToken, 'myPrefix', callback))中定义 -
另外,
listBuckets不会返回任何东西,所以operations.push(listBuckets(...))不会向operations添加任何有用的东西 -
@Phil 你能帮我指出代码更正的错误吗?理解这个错误对我有很大帮助(我是节点新手)。
-
@Phil 我在阅读代码时犯了一个简单的错误,不需要snark:/
标签: javascript node.js async.js