变量内部请求

时间:2017-03-04 08:11:25

标签: javascript asynchronous callback request

我想在请求之外解析身体。但我无法找到一种方法将其置于请求函数之外。你能告诉我怎么样吗?或者至少给我一个例子。我不明白。

"use strict"
var robotsParser = require('robots-parser');
var request = require('request');
var fs = require('fs')
let url = 'http://google.de/robots.txt'

request(url, function(error, response, body) {
    //console.log(body)        
    robots = robotsParser(url, body)
    var reserveisDisallowed = robots.isDisallowed('http://google.de/maps/reserve/api/', '*')
    console.log(reserveisDisallowed)
})

1 个答案:

答案 0 :(得分:0)

如果要在成功回调后执行此指令,请使用jQuery deferred:

var $deferred = $.Deferred(),
    robots,
    globalBody;

$deferred.done(function(body){
    robots = robotsParser(url, body);
    globalBody = body; //After here globalBody object has body available. Do whatever you want to do now.    
    var reserveisDisallowed = robots.isDisallowed('http://google.de/maps/reserve/api/', '*')
    console.log(reserveisDisallowed)
});

request(url, function(error, response, body) {
    //console.log(body)        
  $deferred.resolve(body);
})

如果您只想让身体在外面使用,只需在代码中使用'globalBody'变量

如:

request(url, function(error, response, body) {
    //console.log(body)        
    robots = robotsParser(url, body);
    globalBody = body;
    var reserveisDisallowed = robots.isDisallowed('http://google.de/maps/reserve/api/', '*')
    console.log(reserveisDisallowed)
})