我有這樣的:Meteor.Error在拋出給客戶端時會改變嗎?
Meteor.methods({
'foo'() {
try{
...//some http.get
} catch (e) {
console.log(e); //-> { [Error: ETIMEDOUT] code: 'ETIMEDOUT', connect: true }
if(e.code === 'ETIMEDOUT') { throw e; }
}
}
});
所以現在我在客戶端:
Meteor.call('foo', function(error, result) {
if(error){
if(error.code === 'ETIMEDOUT') {
//this block is never reached.. why?
}
}
}
但似乎error.code是不一樣的服務器上(這好像它被改爲內部服務器錯誤)。爲什麼是這樣?更重要的是,我怎樣才能得到我原來的(在這種情況下超時)錯誤?
在第二個區塊中,您有拼寫錯誤 - 「ETIMEDOUD」。是嗎? – Sindis
不幸的是,這是SO上的一個錯字。但thx反正(固定)。 – Gobliins
在foo()方法中,您有一個賦值而不是compare('='),順便說一句。這不會導致你的問題,但檢查你的實際代碼。 – zim