TypeScript和void Q承诺

时间:2015-09-30 15:56:45

标签: typescript q

如果 TypeScript 1.6 Q 承诺无效的正确方法是什么?也就是说,它们并不代表价值。例如:

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;

这只是https://github.com/nanomsg/nanomsg/blob/fb5670c952c53834c5c7c989eace7c6bd54bd4c5/tests/iovec.c输入中的错误(可能是2015年8月17日更新),或者我指的是错误的?

2 个答案:

答案 0 :(得分:2)

对于使用TS1.6的Q,我最终使用:

#
# CrearCatalogo.ps1
#

#Coger variables
[CmdletBinding()]
Param(
  [Parameter(Mandatory=$True,Position=1)]
   [string]$nombreCatalogo,
        [Parameter(Mandatory=$True)]
   [string]$tipoCatalogo,
        [Parameter(Mandatory=$True)]
   [string]$PVD
)

#Lanzar orden
$result = New-BrokerCatalog -name '$nombreCatalogo' -AllocationType '$tipoCatalogo' -MachinesArePhysical $false -ProvisioningType 'MCS' -SessionSupport 'SingleSession' -PersistUserChanges '$PVD' -AdminAddress "localhost:80"

   #Parsear

答案 1 :(得分:1)

如果没有返回值或我不关心返回值,我一直在使用...

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