Bir müşteri denemek için Meteor ve şerit paketiyle çalışıyorum. tıklandığında Yani Önce sunucuda bir yöntemini çağıran benim istemci tarafı kodu var bu yüzden client.js var:Geri dönüş borcu ödemeleri yanıt almak için meteor arama alma
Meteor.call('usersignup', function (error, result) {
console.log (result);
});
Yani bu server.js üzerinde Yöntem çağırır:
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();
}
});
Bu, stripe.com gösterge panosuna giriş yaptığımda bir müşteri oluşturuyor ve çalışıyor, ancak yanıtın müşteriye en azından müşteri kimliğine iyi bir şekilde döndürülmesine ve konsolda yazdırılmasına çalışıyorum. İşe yaramayacak yer burası. Console.log (sonuç) yaptığımda, undefined günlüğe kaydedilir. Herhangi bir fikir?
DÜZENLEME: Bu nedenle, fiber ve şerit anahtarını şimdi global değişkenler olarak alıyorum ve bir hata alamıyorum, ancak döndürmeler herhangi bir değer döndürmüyor gibi görünmüyor.
'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);
},
});
Yani ben bazı console.log testler uyguladık ettik ve buna meteor.call yürütür ve çizgiyi aşağı gidiyor tutar görünüyor: böylece istemci tarafında ben var. Hem testid hem de cusid Console.log undefined ancak birkaç saniye sonra sonuç konsol.log ve meteor.call içinden "meteor çağrı" dizesini alırsınız. Meteor çağrısı bitirmek için daha sonra benim tıklama fonksiyonunun geri kalanını kalanı için beklemek için bir yolu var mı? böylece konsol çıkış gidecek gibi:
- "Merhaba"
- "dış çağrısı"
- tanımsız
- "meteor çağrısı"
- "sonucunu"
bu büyük çalıştı ama örneğin müşteri silmek istiyorsunuz başka Yöntem yapmaya gittiğinde bir atar Hata ('Gelecek bir kereden fazla çözüldü'). Yani şimdi birisi tıklandığında gönderen tüm bilgileri formdan alır ve bir stripe.customer yaratır, sonra bir Meteor.user oluşturur ancak Accounts.createUser bir Hata atar. Ben şerit müşterisini silmek için bir yöntem çalıştırırım. Stripe del yöntemimi aradıktan sonra hata verir. – asiammyself
Güncellenen kodu yükleyebilir misiniz? Devam etmek için biraz daha fazlasına ihtiyacım var, ancak belki de birden fazla getirinin sağlandığını farz ediyorum, bu yüzden fut.ret'in yalnızca bir kez – Akshat
Güncelleme koduyla çalıştığından emin olmalısınız. Gelecek Küresel bir var. Bunu düzeltmenin doğru yolu olup olmadığını bilmiyorum ama şimdilik işe yarıyor. İşlevi hala bekletilmek üzere beklemediğini görüyor. – asiammyself