2016-10-06 4 views
0

私が作業しているコードで、どこでwrapAsync/bindEnvironmentを実装するべきかを理解するのが難しいです。 http/knoxのURLを呼び出してS3バケットにアップロードしていますが、コールバックでその関数を呼び出そうとすると、Meteor code must always run within a Fiberでヒットします。メテオファイバ問題がコールバックでknoxで

bindEnvironmentでコールバックをラップしようとしましたが、wrapAsyncを使用しようとしましたが、この動作の仕組みを正確に理解していないに違いありません。どんな指導も大歓迎です!

http.get(imageUrl, function(res) { 
    let headers = { 
    'Content-Length': res.headers['content-length'] 
    , 'Content-Type': res.headers['content-type'] 
    }; 
    S3.knox.putStream(res, `/${imageName}`, headers, function(err, res) { 
    if (err) { 
     log.error(`(imageUpload): Error uploading image with knox: ${err}`); 
    } else { 
     let amazonImagePath = `https://s3.amazonaws.com/${bucketName}/${imageName}`; 
     // TODO Figure out why fiber issue is happening with expenseInsert in callback 
     expenseInsert(expenseObj, amazonImagePath); 
    } 
    }); 
}); 

答えて

1

これを試してみてください:

S3.knox.putStream(res, `/${imageName}`, headers, Meteor.bindEnvironment(function(err, res) { 
    //rest of the code  
})); 
関連する問題