Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 错误myFunction(…)。则不是函数_Javascript_Node.js_Request_Bluebird - Fatal编程技术网

Javascript 错误myFunction(…)。则不是函数

Javascript 错误myFunction(…)。则不是函数,javascript,node.js,request,bluebird,Javascript,Node.js,Request,Bluebird,我有以下模块,基本上执行对Google的GET请求: // my-module.js var request = require('request'); var BPromise = require('bluebird'); module.exports = get; function get() { return BPromise.promisify(doRequest); } function doRequest(callback) { request.get({

我有以下模块,基本上执行对Google的GET请求:

// my-module.js
var request = require('request');
var BPromise = require('bluebird');

module.exports = get;

function get() {
    return BPromise.promisify(doRequest);
}

function doRequest(callback) {
    request.get({
        uri: "http://google.com",
    }, function (err, res, body) {
        if (!err && res.statusCode == 200) {
            callback(null, body);
        }
        else {
            callback(err, null);
        }
    });
}
我想这样使用这个模块:

//use-module.js
var myModule = require('./my-module');

myModule().then(function (body) {
     console.log(body);
});
我面临的错误如下:

myModule(…)。则不是函数。

我做错了什么?

b promise.promisify(doRequest)
不调用
doRequest
,而是返回该函数的“promisified”版本。你应该这样做一次,而不是每次打电话。这应该起作用:

module.exports = BPromise.promisify(doRequest);