Merge pull request #183 from KevinMartin/patch-1
Adds SocketIOClient#once(event, callback)
This commit is contained in:
commit
70c7dacde9
@ -35,6 +35,7 @@ private func emitAckCallbackObjectiveC(socket: SocketIOClient?, num: Int?)
|
|||||||
}
|
}
|
||||||
|
|
||||||
struct SocketEventHandler {
|
struct SocketEventHandler {
|
||||||
|
let id = NSUUID()
|
||||||
let event: String
|
let event: String
|
||||||
let callback: NormalCallback?
|
let callback: NormalCallback?
|
||||||
let callBackObjectiveC: NormalCallbackObjectiveC?
|
let callBackObjectiveC: NormalCallbackObjectiveC?
|
||||||
|
|||||||
@ -424,6 +424,38 @@ public final class SocketIOClient: NSObject, SocketEngineClient {
|
|||||||
handlers.append(handler)
|
handlers.append(handler)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Adds a single-use handler for an event.
|
||||||
|
*/
|
||||||
|
public func once(event: String, callback: NormalCallback) {
|
||||||
|
Logger.log("Adding once handler for event: %@", type: logType, args: event)
|
||||||
|
|
||||||
|
var handler: SocketEventHandler?;
|
||||||
|
|
||||||
|
handler = SocketEventHandler(event: event) { (data, ack: AckEmitter?) in
|
||||||
|
self.handlers = ContiguousArray(self.handlers.filter { $0.id != handler!.id })
|
||||||
|
callback(data, ack)
|
||||||
|
}
|
||||||
|
|
||||||
|
handlers.append(handler!)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Adds a single-use handler for an event.
|
||||||
|
*/
|
||||||
|
public func once(event event: String, callback: NormalCallbackObjectiveC) {
|
||||||
|
Logger.log("Adding once handler for event: %@", type: logType, args: event)
|
||||||
|
|
||||||
|
var handler: SocketEventHandler?;
|
||||||
|
|
||||||
|
handler = SocketEventHandler(event: event) { (data, ack: AckEmitterObjectiveC?) in
|
||||||
|
self.handlers = ContiguousArray(self.handlers.filter { $0.id != handler!.id })
|
||||||
|
callback(data, ack)
|
||||||
|
}
|
||||||
|
|
||||||
|
handlers.append(handler!)
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Removes all handlers.
|
Removes all handlers.
|
||||||
Can be used after disconnecting to break any potential remaining retain cycles.
|
Can be used after disconnecting to break any potential remaining retain cycles.
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user