3
在方法拋出我有一個方法,它拋出一個錯誤,所以我可以在我的事件抓住它,並把它顯示給用戶,這樣的流星錯誤:無法趕上從事件
Meteor.methods({
addPlayer: function(nickname) {
if (nickname == "") {
throw new Meteor.Error('empty-nickname', 'You must choose a nickname');
} else {
Player.insert({
nickname: nickname,
});
}
},
})
和我的事件
'submit form': function (e) {
e.preventDefault();
var nickname = $('input').val();
Meteor.call('addPlayer', nickname, function(error, result) {
if (error) {
console.log(typeof error);
console.log(error);
}
});
}
然而,流星還是拋出一個異常,而模擬援引「addPlayer」的效果,並且錯誤變量是不是一個錯誤的對象,但具有相同的消息控制檯日誌一個字符串,所以我在我的控制檯中獲取兩個錯誤而不是錯誤對象。
包裝方法在try/catch中調用不起作用。
我在這裏錯過了什麼?
- 編輯 下面是結果的打印屏幕:
圖片鏈接全分辨率:http://i.stack.imgur.com/zABar.png
該代碼似乎對我來說是正確的。 「模擬調用'addPlayer'的效果是什麼意思」?你是否以某種方式與代碼中顯示的內容進行了區分? –
你在哪裏定義方法?在服務器和客戶端(存根)還是僅在服務器上? (「如果存根引發異常,它將被記錄到控制檯。」) –
拋出新的Meteor.Error(..)看起來不正確。它應該包含一個錯誤號。 –