node.js - 承诺多方
问题描述
我承诺多方使用它的 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)});
解决方案
这是我使用内置 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)
推荐阅读
- android - Android - 无法更改操作栏文本颜色
- python - 有没有更简洁的方法来获取相应的字典值
- windows - 如何在 FFmpeg 中索引图像?
- sql - 如果只有一列不同,如何使数据库中的行重复。例如下面示例中的 DATE
- node.js - 将socket.io传递给节点js中的路由器模块
- javascript - 从 json 数组中删除元素
- javascript - 如何在 querySelectorAll 正则表达式中指定数字
- arrays - Julia 中不同大小的数组列表
- linux - 如何在 linux/unix/bash 脚本的文件中搜索十六进制内容?
- flutter - 输入未来
- > 不是颤振中列表错误的子类型