我想要
- 下载图像文件,然后
- 将图像文件上传到 Google 云端硬盘
var async = require('async');
var fileToUpload = require('./FileToUpload.js');
var fu;
async.waterfall([
function (callback) {
/*** At first, download image file ***/
fu = new fileToUpload.FileToUpload('http://weed.cocolog-nifty.com/wzero3es/images/scrn0000_1.jpg');
callback(null, fu);
},
function (arg, callback) {
/*** Secondary, upload the image file to Google Drive ***/
arg.uploadToGoogleDrive();
callback(null, 'done');
}
]);
- 没有错误,并且
- Google 的响应是文件上传成功。
- 在 Google 云端硬盘中,有新文件
- 但数据已损坏,因此我无法打开图像。
另外,分别下载和上传,没有问题。我可以在 Google 云端硬盘中打开上传的图片。
最佳答案
将回调传递给 FileToUpload 构造函数。
async.waterfall([
function (callback) {
/*** hand the async callback to the FileToUpload constructor ***/
fu = new fileToUpload.FileToUpload('http://xxx/sample.jpg', callback);
},
...
并在 FileToUpload 构造函数中调用回调。
// FileToUpload.js
...
file.on('finish', function () {
file.close(function () {
callback(null, _this); /*** callback for async ***/
});
});
...
感谢@bagz_man 的宝贵建议。
关于javascript - 我很奇怪 "Async"模块不能正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27598906/