使用bluebird和promises时如何处理现有的基于回调的库代码

时间:2015-09-25 22:07:06

标签: promise bluebird

我有以下代码片段将缓冲区复制到本地文件,然后在成功时将其复制到S3。

但是,我不知道如何处理S3存储功能" .send(回调)"的回调。需要。我也希望将它整合到我的承诺链中。

var writeFile = Promise.promisify(fs.writeFile)
var filename = input + "jpg"

writeFile(archive + "/" + filename, buffer)
    .then(function(){
       console.log("Yay, file written");
       outputs.push(filename);
    })
    .then(function(){
        var body1 = fs.createReadStream(archive + "/" + filename)
        var s3obj1 = new AWS.S3({params: {Bucket: 'myBucket', Key: filename}});
        s3obj1.upload({Body: body1})
        .on('httpUploadProgress', function(evt) { console.log(evt); })
        .send(function(err, data) { console.log(err, data) });
    })

我的直觉会让我期待某种方式让蓝鸟的API产生一个nodejs风格的回调,让我继续我的承诺。

我似乎无法宣传发送功能。

由于

0 个答案:

没有答案
相关问题