2012-05-08 10 views
7

De acuerdo con la documentación Meteor ....Meteor collection.insert devolución de llamada emite

collection.insert(doc, [callback])

devolución de llamada Función

opcional. Si está presente, se invoca con un objeto de error como primer argumento y el _id como el segundo.

... luego abajo ...

En el servidor, si usted no proporciona una devolución de llamada, a continuación, insertar bloques hasta que la base de datos reconoce la escritura, o se produce una excepción si algo salió mal. Si proporciona una devolución de llamada, inserte devoluciones inmediatamente. Una vez que la inserción se completa (o falla), se llama a la devolución de llamada con argumentos de error y resultado, al igual que con los métodos.

¿Qué es, error y _id o error y resultado? Tengo Meteor.methods que están disparando sus callbacks correctamente con error, resultado disponible para el alcance.

simplemente no puedo obtener la devolución de llamada para trabajar correctamente en un collection.insert (doc, [callback])

De cualquier manera no puedo obtener mi devolución de llamada para registrar algo?

function insertPost(args) { 
    this.unblock; 
    if(args) { 
    post_text = args.text.slice(0,140); 
    var ts = Date.now(); 
    Posts.insert({ 
     post: post_text, 
     created: ts 
    }, function(error, _id){ 
     // or try function(error, result) and still get nothing 
     // console.log('result: ' + result); 
     console.log('error: ' + error); 
     console.log('_id: ' + _id); //this._id doesn't work either 
    }); 

    } 
    return; 
} 

¿Qué estoy haciendo mal? He estado despierto desde las 2 de la madrugada ... 6 pm mi huso horario ... Estoy borroso, por lo que podría (probablemente) perder algo bastante obvio.

Saludos Steeve

Respuesta

6

Esto fue un error, corregido en la próxima versión. Ahora, si proporciona una devolución de llamada al insert, se llamará con los argumentos error y result, donde result es el ID del documento nuevo, o nulo si hay un error.

+0

¿Sigue siendo un error? Me enfrento al mismo problema que Steeve Cannon estaba recibiendo. No se puede obtener nada para disparar en el segundo argumento. – Rager

5

Dado que este es el código serverside sólo se puede hacer:

var id = Posts.insert({data}); // will block until insert is complete 

y el ID estará disponible.

+0

gracias, eso es lo que fui. Aunque quiero hacer más de un estilo de devolución de llamada en el futuro. Dijeron que estará disponible en el futuro para los interesados. –

Cuestiones relacionadas