【发布时间】:2015-09-10 00:45:11
【问题描述】:
我有函数返回字符串 Q.Promise
module test {
export function promiseString (): Q.Promise<string> {
var deferred = Q.defer<string>();
deferred.resolve('someMessage');
return deferred.promise;
}
}
如何将返回值用作字符串?
选项 #1:
Q.fcall(promiseString).then(function (message: string) {
// compilation error about incompatible parameters
});
选项 #2:
Q.fcall(promiseString).then(function (promise: Q.Promise<string>) {
console.log(typeof promise); // output string
// but i can't use promise as string further
});
【问题讨论】:
-
不要使用
Q.fcall,那是为了回调!第二个选项也应该给出类型错误 -then回调参数是 never 承诺。
标签: typescript promise q