Swift 如何在完成任务后解决RCTPromiseResolveBlock
我试图通过react native的一个桥来实现Amazon FireTV的代码。我的目标是向远程播放器发送一个信号,然后解析RCTPromiseResolveBlock,以便在javascript中等待函数Swift 如何在完成任务后解决RCTPromiseResolveBlock,swift,react-native,react-native-ios,fling,Swift,React Native,React Native Ios,Fling,我试图通过react native的一个桥来实现Amazon FireTV的代码。我的目标是向远程播放器发送一个信号,然后解析RCTPromiseResolveBlock,以便在javascript中等待函数 @objc func fling(_ options: NSDictionary, _ resolve: RCTPromiseResolveBlock, rejecter reject: RCTPromiseRejectBlock) -> Void { let player =
@objc func fling(_ options: NSDictionary, _ resolve: RCTPromiseResolveBlock, rejecter reject: RCTPromiseRejectBlock) -> Void {
let player = getDeviceFromUuid(uuid:uuid) // instance of RemoteMediaPlayer
// ... more code
let bftask = player?.setMediaSourceToURL(
url,
metaData:metaData,
autoPlay:true,
andPlayInBackground:false)
bftask?.continue({ (task:BFTask) -> Void in
if task.error != nil {
reject() // <-- These are "non-escaping parameters captured in an escaping closure"
} else {
resolve() // <--
}
})
@objc func fling(u选项:NSDictionary,uu解析:RCTPromiseResolveBlock,拒绝器拒绝:RCTPromiseRejectBlock)->Void{
let player=getDeviceFromUuid(uuid:uuid)//RemoteMediaPlayer的实例
//…更多代码
设bftask=player?.setMediaSourceToURL(
网址,
元数据:元数据,
自动播放:对,
和播放背景:假)
bftask?.continue({(任务:bftask)->中的Void
如果task.error!=nil{
reject()//好的。只需在参数中添加@escaping
:
@objc func fling(_ options: NSDictionary, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock) -> Void {
...