Javascript TypeScript es6 promise,如何匹配promise构造函数
试一试:Javascript TypeScript es6 promise,如何匹配promise构造函数,javascript,node.js,typescript,es6-promise,Javascript,Node.js,Typescript,Es6 Promise,试一试: init():Promise<mongodb.Db> { return new Promise<mongodb.Db>((resolve : (value?: R | Thenable<R>) => void, reject: (error?: any) => void) => { this.db = new mongodb.Db("test", new mongodb.Server("localhost",
init():Promise<mongodb.Db> {
return new Promise<mongodb.Db>((resolve : (value?: R | Thenable<R>) => void, reject: (error?: any) => void) => {
this.db = new mongodb.Db("test", new mongodb.Server("localhost", 12017));
this.db.open((err, db) => {
if (err) {
reject(err);
} else {
resolve(db);
}
});
});
}
我做错了什么?我直接从Promise的类定义中复制的构造函数参数。尝试了很多很多不同的方法,但是没有一种有效。显然,因此产生了一个问题:)ES6 promise构造函数采用一个函数,该函数将resolve和reject函数作为参数 一个简单的例子:
let executor = (resolve, reject) => {
if(1>0) {
resolve("1");
} else {
reject("0");
};
let promise = new Promise<string>(executor);
let executor=(解析、拒绝)=>{
如果(1>0){
决议(“1”);
}否则{
拒绝(“0”);
};
让承诺=新承诺(执行人);
不确定这个定义是从哪里来的。
您的编译器目标是否设置为es6
从lib.es6.d.ts
/**
* Creates a new Promise.
* @param executor A callback used to initialize the promise. This callback is passed two arguments:
* a resolve callback used resolve the promise with a value or the result of another promise,
* and a reject callback used to reject the promise with a provided reason or error.
*/
new <T>(executor: (resolve: (value?: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => void): Promise<T>;
/**
*创造新的承诺。
*@param executor用于初始化承诺的回调。此回调传递了两个参数:
*使用值或其他承诺的结果解析承诺时使用的解析回调,
*以及拒绝回调,用于以提供的原因或错误拒绝承诺。
*/
新(执行人:(决定:(价值?:承诺)=>无效,拒绝:(理由?:任何)=>无效)=>无效):承诺;
对我来说效果很好typescript 1.7.5,目标es6
这应该对你有用
return new Promise<mongodb.Db>((resolve: (value?: any) => void, reject: (reason?: any) => void) => {
...
})
返回新承诺((解决:(值?:任意)=>无效,拒绝:(原因?:任意)=>无效)=>{
...
})
很抱歉,但这不起作用。由于某些原因,找不到构造函数。我的目标是模块commonjs和es5,因为我希望这在NodeJS中起作用。这是ES6承诺,如果您使用es5,您很可能使用第三方承诺库。它们通常采用相同的样式,但可能存在差异。请分享承诺你正在使用的图书馆。
return new Promise<mongodb.Db>((resolve: (value?: any) => void, reject: (reason?: any) => void) => {
...
})