Is it impossible to get completion block success then data received from another method?
@property myCompletion;
// I have first call listeners, i can't add this in to "createOrderWithsuccess"
-(void)listeners {
    [[SocketIOManager sharedInstance].socket on:@"someAction" callback:^(NSArray* data, SocketAckEmitter* ack) {
        // data received
        myCompletion(data);
    }];
}
// this will be called <del>first</del> later
- (void)createOrderWithsuccess:^(NSArray *data) {
    // but it has to wait then data will be received  
    myCompletion = success;
 }
 
                        
It's a bit hard to understand what you are looking for, but this might be it. This is how I handle Completion callbacks in my app:
The
typedefshould be in the .h file so that both this class and the one callingcreateOrderWithsuccess:knows about it.