Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.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在node.js上不起作用_Javascript_Node.js_Promise - Fatal编程技术网

Javascript promise在node.js上不起作用

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(

我尝试了以下代码,但效果不好,我将logger放在两个方法中,以检查哪个方法执行完成,但根据logger调用
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吗?展示你迭代的一些循环