0
ローカライゼーションのためにtotal.jsで非同期呼び出しを待つことを試みています。しかし、私がlocalization.jsの一部を応答待ちにしようとすると、プログラムは自動的に言語「en」を選択し続けます。以下のコードは非同期処理を扱っていませんが、私がしようとしていることを示すために共有しました。どのようにそれを行うにはどのようなアイデア?Total.jsはローカライゼーションのイベントを待ちます
var COOKIE = '__language',
allowed = {en: true, dk: true};
F.onLocate = function (req, res) {
var self = this,
language = req.query.language || req.cookie(COOKIE);
var userIP = self.ip
// Set the language according to the querystring and store to the cookie
if (language) {
if (!allowed[language])
return 'en';
res.cookie(COOKIE, language, '2 days');
return language;
}
// addition if cookie is not set, first time Danish users will have 'dk' cookie set
else {
// return from here works
Util.waitUtils.request('https://ipfind.co?ip='+userIP +'&auth=myauthcodehere'
, ['get'], function(err, data, status, headers) {
var result = JSON.parse(data);
if(result.country_code === 'DK')
{
res.redirect('/?language=dk');
}
});
}
res.cookie(COOKIE, 'en', '2 days');
return 'en';
};