Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.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 为什么Promise.then()中的代码没有被调用?_Javascript_Node.js_Promise - Fatal编程技术网

Javascript 为什么Promise.then()中的代码没有被调用?

Javascript 为什么Promise.then()中的代码没有被调用?,javascript,node.js,promise,Javascript,Node.js,Promise,为什么Promise.then()中的代码没有被调用 我正在用expressjs和bluebird promise编写服务器。当我尝试使用promise.promisify()来promisify函数时,我发现我在promise.then()中编写的代码不起作用。我的代码如下 var Promise = require('bluebird'); var test = function(req) { console.log('123'); }; var regist=Promise.p

为什么Promise.then()中的代码没有被调用

我正在用expressjs和bluebird promise编写服务器。当我尝试使用promise.promisify()来promisify函数时,我发现我在promise.then()中编写的代码不起作用。我的代码如下

var Promise = require('bluebird');

var test = function(req) {
    console.log('123');
};

var regist=Promise.promisify(test);

app.post('/test', function (req, res) {
    reg.regist()
    .then(function () {
        console.log('456');
    });

我向“/test”发送了一个请求,但控制台中只显示了123。我如何才能使Promise.then()中的代码正常工作?

promisify
创建一个机制,自动将回调函数作为最后一个参数传递给原始函数。您的函数不接受回调函数,也从不调用回调函数,因此承诺无法解决

如果您的函数不是异步的,那么说明它没有多大意义,但下面介绍了如何做到这一点:

var测试=函数(请求,回调){
console.log('123');
回调();
};
var寄存器=承诺、承诺(测试);
var请求={someProperty:'somevalue'};
登记处(请求)
.然后(函数(){
控制台日志('456');
});
以更好地了解您做出的错误假设,以及您的代码做错了什么