簡體   English   中英

我很奇怪“異步”模塊不能正常工作

[英]I am strange that “Async” module doesn't work well

我想要

  1. 下載圖像文件,然后
  2. 將圖片文件上傳到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提供寶貴的建議。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM