लौटने के लिए उल्का कॉल प्राप्त करना मैं ग्राहक को कोशिश करने और बनाने के लिए उल्का और पट्टी पैकेज के साथ काम कर रहा हूं। तो सबसे पहले मैं जो सर्वर पर एक प्रणाली को बुलाती है मेरे मुवक्किल साइड कोड है, इसलिए जब क्लिक मैं client.js में है:पट्टी भुगतान प्रतिक्रिया
Meteor.call('usersignup', function (error, result) {
console.log (result);
});
तो यह विधि कॉल server.js पर:
var Future = Npm.require('fibers/future');
var stripe = StripeAPI('my key'); // secret stripe API key
Meteor.methods({
usersignup: function(cusEmail){
var fut = new Future();
stripe.customers.create(
{ email: cusEmail },
function(err, customer) {
if (err) {
console.log(err);
fut.ret;
}
fut.ret(customer);
}
);
return fut.wait();
},
userfail: function(cusid){
var fut = new Future();
stripe.customers.retrieve(cusid, function(err, result) {
if(err){
console.log(err);
fut.ret;
}
fut.ret(err, result);
});
return fut.wait();
}
});
अब जब मैं stripe.com डैशबोर्ड पर लॉग ऑन करता हूं तो यह काम करता है और ग्राहक बनाता है लेकिन मैं क्लाइंट को कम से कम ग्राहक आईडी को वापस लौटने की कोशिश कर रहा हूं और इसे कंसोल में प्रिंट कर रहा हूं। यह वह जगह है जहां मैं इसे काम करने के लिए प्रतीत नहीं कर सकता। जब मैं console.log (परिणाम) करता हूं तो यह अपरिभाषित लॉग जाएगा। कोई विचार?
संपादित करें: इसलिए मैंने फाइबर और पट्टी कुंजी को वैश्विक चर के रूप में रखा है और कोई त्रुटि नहीं मिली है लेकिन रिटर्न किसी भी मान को वापस नहीं लग रहा है। इसलिए ग्राहक के पक्ष मैं:
'click #signupsubmit': function (event) {
console.log("hello");
var whatis = getVal(); // function gets value of forms and returns object
var testid;
var cusid = Meteor.call('usersignup', whatis.email, function (error, result) {
if (error) {
console.log(err.message);
return;
}
console.log(result);
console.log("meteor call");
testid = result;
return (result);
});
console.log("outside call");
console.log(testid);
console.log(cusid);
},
});
तो मैं कुछ console.log परीक्षण चल रहा है और यह यह meteor.call निष्पादित करता है और लाइन नीचे जा रहा रखता है। टेस्टिड और क्यूसिड रिटर्न दोनों का कंसोल.लॉग अपरिभाषित है लेकिन कुछ सेकंड बाद मुझे परिणाम का console.log और meteor.call के अंदर से "उल्का कॉल" स्ट्रिंग प्राप्त होता है। क्या उल्का कॉल समाप्त होने का इंतजार करने का कोई तरीका है, फिर मेरे क्लिक फ़ंक्शन में शेष चीज़ों को चलाएं? इसलिए सांत्वना उत्पादन जाना होगा जैसे:
- "हैलो"
- "बाहर कॉल"
- परीक्षण आईडी अपरिभाषित
- cusid अपरिभाषित
- "उल्का कॉल"
- "परिणाम"
यह महान काम किया लेकिन जब मैं एक और विधि है कि उदाहरण के लिए ग्राहक को हटाना होगा बनाने के लिए चला गया यह एक फेंकता त्रुटि ('भविष्य में एक से अधिक हल हो गया')। तो अभी कोई सबमिट करने पर क्लिक करता है, फॉर्म से सभी जानकारी प्राप्त करता है और एक स्ट्रिप customer बनाता है तो एक meteor.user बनाते हैं लेकिन कहते हैं कि accounts.createUser एक त्रुटि फेंकता है जो मैं पट्टी ग्राहक को हटाने के लिए एक विधि चलाता हूं। मेरे पट्टी डेल विधि को कॉल करने के बाद यह त्रुटि देता है। – asiammyself
क्या आप अपडेट किए गए कोड को पोस्ट कर सकते हैं? मुझे आगे बढ़ने के लिए थोड़ा और चाहिए, लेकिन मुझे लगता है कि शायद कई रिटर्न उपलब्ध कराए जा रहे हैं, इसलिए आपको यह सुनिश्चित करना होगा कि fut.ret केवल – Akshat
अपडेट किया गया कोड हो। भविष्य भविष्य एक वैश्विक var। यह नहीं पता कि यह इसे संभालने का सही तरीका होगा, लेकिन अभी के लिए काम करता है। फ़ंक्शन अभी भी संपादित पोस्ट देखने के लिए प्रतीक्षा नहीं कर रहा है। – asiammyself