Zaman uyumsuz programlamada olduğu gibi geri aramaları ve sözleri kullandık. Burada sözler için kullanılabilecek bir sorunla karşılaştım. Ben google çok ama ben sorunumu çözdü hiçbir şey bulunamadı.Düğüm js'deki sözleri nasıl kullanabiliriz?
Burada Android cihazında push bildirimi göndermek için yaptığım kodum.
router.post('/check-notifications', function(req, res, next) {
var user_id = req.body.user_id;
var response = {};
var gcm = require('push-notify').gcm({
apiKey: gcm_apiKey,
retries: 0
});
connection.query('select device_id from devices where user_id = '+ user_id, function (err, result) {
if (result.length) {
for (var i = 0; i < result.length; i++) {
console.log(i + 'before notify');
gcm.send({
registrationId: result[i]['device_id'],
data: result[0]
});
console.log(i + 'before transmitted');
gcm.on('transmitted', function (result, message, registrationId) {
console.log('transmitted');
});
gcm.on('transmissionError', function (error, message, registrationId) {
console.log(message);
});
console.log(i + 'after notify');
}
}
});
response['success'] = true;
response['msg'] = 'sent successfully';
res.json(response);
});
Çıktı:
0before notify
0before transmitted
0after notify
1before notify
1before transmitted
1after notify
transmitted
transmitted
transmitted
transmitted
Ve Böyle olması gerektiğini düşünüyorum.
0before notify
0before transmitted
transmitted
0after notify
1before notify
1before transmitted
transmitted
1after notify
Neden böyle düşünüyorsunuz? "gcm.send" eşzamansızdır ve döngü içi kod bildirim iletimini beklemez. Eşzamansız istekleri zincirlemek istiyorsanız, çözme için uyumsuz gibi Denetim akışı kitaplıkları kullanabilirsiniz. –
Bu yüzden, konuştuğunuz uyumsuz kütüphaneyi kullanmanın farkında değilim. nasıl kullanabileceğimizi önerebilir misin? – iam