这是What is wrong with this code that promisify a function?
的后续问题方法1有效;
\w*[^\s]*[^a\s]{2}[^\s]*\w*
方法2不起作用;
var Converter = require('csvtojson').Converter;
Promise.promisifyAll(Converter.prototype);
var converter = new Converter();
为什么方法1工作而不是方法2?
答案 0 :(得分:1)
Promise.promisifyAll(obj)
返回obj
,因此......
Promise.promisifyAll(Converter.prototype)
...返回Converter.prototype
,而不是Converter
因此......
var converter = Promise.promisifyAll(Converter.prototype);
...会将Converter.prototype
分配给converter
。
为了宣传原型并分配Converter
的实例,你应该(现实地)写两个语句(即方法1):
Promise.promisifyAll(Converter.prototype);
var converter = new Converter();
你可以写单行......
var converter = new (Promise.promisifyAll(Converter.prototype).constructor);
......虽然它的可读性较差。
答案 1 :(得分:0)
在重新审核文档https://www.npmjs.com/package/csvtojson时,Convertor
是一个构造函数。它必须与前面的new
一起使用。