【发布时间】:2017-02-08 06:00:16
【问题描述】:
var mongoose = require('mongoose');
import es6Promise from 'es6-promise';
mongoose.Promise = es6Promise.Promise;
const follow = (followerID, toFollowId, cb) => { //REVISE only update
User.update(
{ _id: toFollowId},
{$push: {usersFollowing: followerID}},
function(err){
if (err){
cb(true);
} else {
User.findByIdAndUpdate(
followerID,
{$push: {usersBeingFollowed: toFollowId}},
{safe: true, new: true},
function(err, model){
if (err){
cb(true);
} else {
cb(null, model);
}
}
)
}
}
)
}
const unfollow = (unfollowerId, toUnfollowId, cb) => { //REVISE only update
User.update(
{ _id: toUnfollowId},
{$pull: {usersFollowing: unfollowerId}}).then(
function(err){
if (err){
return cb(true);
} else {
User.findByIdAndUpdate(
unfollowerId,
{$pull: {usersBeingFollowed: toUnfollowId}},
{safe: true, new: true},
function(err, model){
if (err){
cb(true);
} else {
cb(null, model)
}
}
)
}
})
}
我的跟随功能,它不使用承诺工作正常。我尝试编辑我的取消关注功能以作为承诺,但它不起作用。自 ES5 以来我没有接触过 JS,但我的承诺理解是我只是将回调移动到 .then() 中并收工。我在这里错过了什么?
【问题讨论】:
-
“它不起作用”
-
User.update是否返回一个 Promise?承诺解决了吗?
标签: javascript promise es6-promise