2012-05-08 88 views
7

根據流星文檔....流星collection.insert回調發出

collection.insert(doc, [callback])

回調功能

可選。如果存在,則用錯誤對象作爲第一個參數並將_id作爲第二個參數進行調用。

...再後來下來...

在服務器上,如果你不提供一個回調,然後插入塊,直到該數據庫確認寫,或將引發什麼異常出錯。如果您確實提供回調,請立即插入返回。一旦插入完成(或失敗),將調用帶有錯誤和結果參數的回調,與方法相同。

這是什麼,錯誤和_id或錯誤和結果?我確實有Meteor.methods正確地發射他們的回調與錯誤,結果可用的範圍。

我只是不能回調到正常上collection.insert(DOC,[回調])

無論哪種方式,我不能讓我的回調註冊什麼工作?

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; 
} 

我在做什麼錯?自上午2點起,我一直在編碼......下午6點我的時區...我模糊了,所以我可能(可能)錯過了一些相當明顯的東西。

乾杯 吊杆

回答

6

這是一個錯誤,在下一個版本中修復。現在,如果您提供insert的回叫,則將使用errorresult參數調用它,其中result是新文檔的ID,如果有錯誤,則爲null。

+0

這仍然是一個錯誤?我面臨Steeve Cannon遇到的同樣的問題。在第二個參數中無法獲取任何內容。 – Rager

5

由於這是服務器端的代碼,你可以這樣做:

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

和ID將可用。

+0

謝謝你,那就是我一起去的。雖然我想在將來做更多的回調風格。他們表示,對於那些感興趣的人來說,這將是有益的。 –