Я использую node.js для выполнения поиска DNS для возврата и IP-адреса (http://nodejs.org/api/dns.html). В этом примере я могу получить свой результат для правильной записи, хотя я бы предпочел иметь доступ к переменной за пределами области обратного вызова. Как это возможно?Как вернуть значение из обратного вызова
Мой текущий код:
var domain = 'google.co.uk';
dns.lookup(domain, function (err, aRecord) {
if (err) throw err;
console.log(aRecord);
});
В идеале, я хотел бы быть в состоянии выполнить что-то вдоль линий:
var domain = 'google.co.uk';
var myfunction = dns.lookup(domain, function (err, aRecord) {
if (err) throw err;
return aRecord;
});
var result = myfuction(domain);
Невозможно. Если бы это было так, вам не нужно было бы предоставлять обратный вызов. См. Первую часть [мой ответ здесь] (http://stackoverflow.com/a/14220323/218196) для объяснения синхронного и асинхронного кода. –
Потенциальная копия этого дуплета: http://stackoverflow.com/questions/6847697/how-to-return-value-from-callback-функция. – Mogsdad
Описывается разумная обходная ситуация [здесь] (http://stackoverflow.com/a/6847754/1677912). – Mogsdad