gpt4 book ai didi

javascript - Bluebird promise 不会收到任何数据

转载 作者:搜寻专家 更新时间:2023-10-31 23:12:04 24 4
gpt4 key购买 nike

我正在尝试将 promises 集成到我正在开发的应用程序的 API 中。我从以下路线在 Postman 中收到“未收到数据”,而注释掉的 block 工作正常。

import User from './models/User';
import express from 'express';
import Promise from 'bluebird';

const router = express.Router();

router.get("/", function(req, res, next){
Promise.try(function(){
User.find({}, function(err, users) {
return Promise.resolve(users);
});
}).then(function(result){
if (result instanceof Function) {
result(res);
} else {
return res.json(result);
}
}).catch(function(err){
next(err);
});
});

/*
router.get("/", function(req, res, next){
User.find({}, function(err, users) {
return res.json(users);
});
});
*/


module.exports = router;

最佳答案

Promise.try正在同步执行您的功能。任何同步异常都将变成对返回 promise 的拒绝。请尝试用 new Promise 来做如下所示。

var p = new Promise(function (resolve, reject){
User.find({}, function(err, users) {
if (err)
reject(err);
else
resolve(users);
});
});
p.then(function(result){
return res.json(result);
}).catch(function(err){
next(err);
});

关于javascript - Bluebird promise 不会收到任何数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35602998/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com