承诺帮助 - 回归价值观

时间:2015-06-03 07:16:05

标签: javascript promise

var request = require("request-promise"),
    parseXml = require("xml2js").parseString,
    q = require("q");

exports.getEntities = function(entity, callback) {
    var uri = "http://lookup.dbpedia.org/api/search/PrefixSearch?QueryClass=&MaxHits=5&QueryString=" + entity;

    var options = {
        uri : uri,
        method : "GET",
        transform : function (data) {
            var deferred = q.defer();
            parseXml(data, function(err, result) {
                deferred.resolve = result.ArrayOfResult.Result;
            });

            return deferred.promise;
        }
    };

    return request(options);
};

parseXml使用回调,但我需要从transform函数返回一个值。我已经尝试了上述内容,但因为变换的来电者并没有期待一个承诺,它没有做我想做的事情。如何将parseXml的结果返回到转换?

0 个答案:

没有答案