我 promise 多方使用其 form.parse。它工作正常,但 form.parse 不会返回我可以使用其 then/catch 值的 promise 。
var Promise = require('bluebird');
var multiparty = Promise.promisifyAll(require('multiparty'), {multiArgs:true})
var form = new multiparty.Form();
form.parse({}).then((data)=>{console.log(data)});
这是我使用内置 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)
我是一名优秀的程序员,十分优秀!