我很奇怪“异步”模块不能很好地工作
I am strange that "Async" module doesn't work well
我想
- 下载图像文件,然后
- 将图片文件上传到谷歌云端硬盘
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');
}
]);
- 没有错误,并且
- 谷歌的回应是文件上传成功。
- 在谷歌云端硬盘中,有新文件
- 但是数据已损坏,因此我无法打开图像。
另外,下载和上传分开,没有问题。我可以在谷歌云端硬盘中打开上传的图像。
将回调交给 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的宝贵建议。
相关文章:
- 在ES6中,模块将导致多个网络调用,因为两个模块不能在单个文件中定义
- websocket可以使用http模块,但不能使用express(node.js)
- AngularJS,不能添加模块
- 不能在 WebWorker (NWJS) 中要求节点模块
- 我很奇怪“异步”模块不能很好地工作
- requirejs中的模块只能在浏览器中加载,而不能在nodejs中加载
- 在requireJS中,以后定义命名模块不能覆盖以前的模块
- 不能要求全局 npm 模块
- 不能在registerSuite .js中要求AMD模块
- 不能在Node.js上使用URL模块,不能调用方法'parse'的定义
- 不能使用angular.js注入日期picker模块
- 模块.导出不能在node.js中工作(没有错误)
- 不能实例化AngularJS模块
- AngularJS为什么我不能与另一个模块共享一个提供商?
- SendGrid云模块:不能发送报头参数对象
- RequireJS:不能将任何模块导入到特定的模块
- 为什么不能传递带有"-"的参数?到我的节点模块
- 类已经或正在使用名称'SafeUrl'从外部模块获取,但不能命名
- grunt-contrib- requires不能解析我的运行时模块注入
- Node.js:模块不能识别Schema