首页 > 解决方案 > 承诺多方

问题描述

我承诺多方使用它的 form.parse。它工作正常,但 form.parse 不返回我可以使用其 then/catch 值的承诺。

var Promise = require('bluebird');
var multiparty = Promise.promisifyAll(require('multiparty'), {multiArgs:true})
var form = new multiparty.Form();
form.parse({}).then((data)=>{console.log(data)});

标签: node.jspromisebluebirdmultiparty

解决方案


这是我使用内置 Promise 的解决方案:

const promisifyUpload = (req) => new Promise((resolve, reject) => {
    const form = new multiparty.Form();

    form.parse(req, function(err, fields, files) {
        if (err) return reject(err);

        return resolve([fields, files]);
    });
});

和用法:

const [fields, files] = await promisifyUpload(req)

推荐阅读