【发布时间】:2016-05-11 11:03:59
【问题描述】:
是否可以为现有类手动定义其他方法?
我的具体用例是 bluebird 的 promisifyAll(),其中:
通过遍历对象的属性并创建对象及其原型链上每个函数的异步等效项来承诺整个对象...http://bluebirdjs.com/docs/api/promise.promisifyall.html
显然,flow 无法自动解决这个问题。所以,我愿意帮助它。问题是如何?
考虑下面的代码
import http from 'http'
import { promisifyAll } from 'bluebird'
promisifyAll(http)
const server = http.createServer(() => { console.log('request is in'); })
server.listenAsync(8080).then(() => {
console.log('Server is ready to handle connections')
})
Flow 在这里给出以下错误:
property `listenAsync`. Property not found in
Server
如果我使用listen,不会有任何错误。 flow 足够聪明,可以看出这是在模块中定义的真实方法。但是listenAsync 是promisifyAll 的动态添加,对流是不可见的
【问题讨论】:
标签: javascript flowtype