के अंदर एक Meteor.call विधि से एक त्रुटि कैसे वापस कर सकता हूं मेरा उल्का कोड कुछ बिंदुओं पर गहराई से Meteor.call विधियों को चलाता है। अगर मुझे दूसरी परत में कोई त्रुटि है और मैं उस उल्का त्रुटि को क्लाइंट पक्ष में वापस फेंकना चाहता हूं तो मैं यह कैसे कर सकता हूं?मैं किसी अन्य Meteor.call
वर्तमान में मैं कुछ इस तरह है, लेकिन मैं बहुत भ्रमित आउटपुट हो रही है और मुझे नहीं लगता कि मैं पूरी तरह से समझते क्या हो रहा है जब मैं throw new Meteor.Error(500, e.category_code, e.description);
फोन कर रहा हूँ client.js में
Meteor.call('firstCall', data, function (error, result) {
if(result) {
doSomething();
}
else{
console.log(error);//just shows 500
}
});
server.js में
var Future = Meteor.npmRequire("fibers/future");
function extractFromPromise(promise) {
var fut = new Future();
promise.then(function (result) {
fut.return(result);
}, function (error) {
console.log(error);
fut.throw(error);
});
return fut.wait();
}
firstCall: function (data){
try{
Meteor.call('secondCall', data, 'http://testhref.com/test', 'http://testhref2.com/test' function (error, result) {
return result;
});
}
catch(e){
throw new Meteor.Error(500, e.category_code, e.description);
}
}
secondCall: function (data, paymentHref, otherHref){
try{
var associate = extractFromPromise(balanced.get(paymentHref).associate_to_customer(otherHref).debit({
"amount": data.paymentInformation[0].total_amount * 100,
"appears_on_statement_as": "Trash Mountain"}));
}
catch(e){
Collection.update(data.id, {
$set: {
'failed.category_code': e.category_code,
'failed.description': e.description
}
});
throw new Meteor.Error(500, e.category_code, e.description);
}
}
यहां तक कि यह त्रुटि से सही जानकारी वापस नहीं प्रतीत होता है। ऊपर मेरा उदाहरण समस्या की व्याख्या करने के लिए पर्याप्त नहीं है।मेरे पास अपना पूरा पहला प्रयास है, जिसे पकड़ने की कोशिश में लपेटा गया है, लेकिन जब त्रुटि फेंक दी जाती है तो कोड निष्पादित करना प्रतीत होता है, जो एक और त्रुटि का कारण बनता है और यही वह है जिसे पहले क्लाइंट से वापस किया जा रहा है। – JoshJoe
क्या आप सिंक्रनाइज़ रूप से 'secondCall' को कॉल कर रहे हैं? मेरा संशोधन देखें। –
मैं इसे तुल्यकालिक रूप से नहीं बुला रहा था। यह तय है, लेकिन मुझे लगता है कि ग्राहक को त्रुटि प्राप्त करने के लिए निश्चित रूप से एक बेहतर तरीका होना चाहिए। मुझे यकीन है कि मैं यह सबसे अच्छा तरीका नहीं कर रहा हूं। धन्यवाद – JoshJoe