Javascript promise在node.js上不起作用
我尝试了以下代码,但效果不好,我将logger放在两个方法中,以检查哪个方法执行完成,但根据logger调用Javascript promise在node.js上不起作用,javascript,node.js,promise,Javascript,Node.js,Promise,我尝试了以下代码,但效果不好,我将logger放在两个方法中,以检查哪个方法执行完成,但根据logger调用addPersonalData方法 var promisePersonal = removePersonalData(profile); promisePersonal.then( addPersonalData(personal, profile) ); function removePersonalData(profile) { return new Promise(
addPersonalData
方法
var promisePersonal = removePersonalData(profile);
promisePersonal.then(
addPersonalData(personal, profile)
);
function removePersonalData(profile) {
return new Promise(function(resolve, reject) {
var id = profile._id;
Personal.remove({
parent_id: id
}, function(error) {
if (!error) {
logger.info('Personal Remove : success');
resolve(profile);
} else {
logger.error('Personal Remove : error' + error);
reject(error);
}
});
});
}
记录器:
12: 22: 45 PM - info: Inside addPersonalData mothod <----- //here is problem
12: 22: 45 PM - info: Profile saved: addPersonalData
12: 22: 45 PM - info: Enter into removeEducationData
12: 22: 45 PM - info: Number of Education data::2
12: 22: 45 PM - info: Inside addEducationData mothod
12: 22: 45 PM - info: Personal Remove: success <---- //here is problem this should be first execute
12: 23: 10 PM - info: Education Remove: success
12:22:45 PM-信息:Inside addPersonalData方法请按以下方式更改代码。希望这会有帮助
promisePersonal.then(
() => addPersonalData(personal, profile) // callback function
)
原因:Promise.then接受一个函数,但您提供了一个函数调用。Promise没有什么问题,您只是用错了。
试试这个:
var promisePersonal = removePersonalData(profile);
promisePersonal.then(function(profile) {
addPersonalData(personal, profile);
});
function removePersonalData(profile) {
return new Promise(function(resolve, reject) {
var id = profile._id;
Personal.remove({
parent_id: id
}, function(error) {
if (!error) {
logger.info('Personal Remove : success');
resolve(profile);
} else {
logger.error('Personal Remove : error' + error);
reject(error);
}
});
});
}
这就是工作:)你能详细说明承诺所有的@ponury kostek吗?展示你迭代的一些循环