TypeScript和void Q承诺

如果它们无效,那么使用TypeScript 1.6的Q promises的正确方法是什么?也就是说,它们并不代表价值.例如:

return Q.Promise<void>((resolve,reject) => {
    resolve();
}

要么

let deferred = Q.defer<void>();
deferred.resolve();
return deferred.promise;

对resolve()的调用获取错误:

Supplied parameters do not match any signature of call target
(parameter) resolve: (val: void | Q.IPromise<void>) => void

注意,以下工作:

let deferred = Q.defer<string>();
deferred.resolve("Hello World");
return deferred.promise;

这可能只是DefinitelyTyped打字中的一个错误(在撰写本文时可能是2015年8月17日更新),或者我指的是错误的?

最佳答案 如果没有返回值或我不关心返回值,我一直在使用…

return Q.Promise<any>((resolve, reject) => {
  resolve();
}
点赞