2017-05-06 40 views
3

我使用的是@types的定义,并添加了@types/bluebird,正如预期的那样,当使用库中的方法时,我会自动完成。不过,我想提出节点的功能(FS)。我能做到这一点与以下行:有没有什么办法可以让Promise节点的功能和获得与Stylist的智能感知?

import * as Promise from 'bluebird' 
import * as fs from 'fs' 

const fsPromisified = Promise.promisifyAll(fs) 

的问题是,当我做fsPromisified我失去自动完成。

有没有什么办法可以做到这一点,而不必用承诺来包装节点的功能?

回答

2

可以使用预promisified mz /fs代替fs,它封装所有promisifies所有异步fs功能(与原来的名称,而不是Async前缀)。该包装打字稿(@types/mz):

import * as fs from 'mz/fs'; 

// e.g., read file 
fs.readFile('somefile') 
    .then((contents) => { 
    // ... 
    }); 
+0

棒极了!感谢分享!任何想法,如果节点计划增加支持承诺而不是回调? –

+0

@CésarAlberca我不确定是否有任何具体的计划,但已经讨论过它,请参阅[nodejs/NG#25](https://github.com/nodejs/NG/issues/25),[ (https://github.com/nodejs/node/issues/11)和[nodejs/node#4596](https://github.com/nodejs/node/issues/4596) – Frxstrem

+0

@ CésarAlberca还发现这个主题的工作组:[nodejs/promises](https://github.com/nodejs/promises) – Frxstrem

相关问题