为什么Promise.then()中的代码未被调用?
问题描述:
为什么Promise.then()中的代码未被调用?当我试图使用Promise.promisify()提交一个函数时,我发现我在Promise.then()中编写的代码不起作用。我的代码如遵循为什么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');
});
我发布一个请求“/测试”,只看到123印在console.How我能在Promise.then代码()工作?
答
Promise.promisify
创建一个机制,自动传递回调函数作为您的原始函数的最后一个参数。你的函数不需要回调函数,也不会调用函数,所以没有办法解决这个承诺。
如果你的功能不同步,没有在promisifying它远点,但这里的你怎么可以这样做:
var test = function(req, callback) {
console.log('123');
callback();
};
var regist = Promise.promisify(test);
var request = { someProperty: 'some value'};
regist(request)
.then(function() {
console.log('456');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/bluebird/3.4.7/bluebird.min.js"></script>
[阅读promisify文档(HTTP ://bluebirdjs.com/docs/api/promise.promisify.html)以更好地理解你所做的错误假设,以及你的代码做错了什么 –