Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.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 V8中的垃圾收集器在分配给新对象(浅拷贝)时如何处理承诺?_Javascript_Node.js_Promise_Garbage Collection_Sequelize.js - Fatal编程技术网

Javascript V8中的垃圾收集器在分配给新对象(浅拷贝)时如何处理承诺?

Javascript V8中的垃圾收集器在分配给新对象(浅拷贝)时如何处理承诺?,javascript,node.js,promise,garbage-collection,sequelize.js,Javascript,Node.js,Promise,Garbage Collection,Sequelize.js,我面临内存泄漏问题,最近开始调试,解决了一些问题。但我似乎更关心对象引用和垃圾收集,在上面的代码示例中,SomeModel.findOne返回一个承诺,我将该承诺分配给一个新对象(浅拷贝)appLogin。我该不该把这个承诺复制下来?对于新对象的承诺引用非常困惑,垃圾收集器在转到下一个.then()之后会将该承诺视为垃圾吗?提前感谢。:) 分配不会导致进行浅拷贝。另外,无论是login还是appLogin都不是承诺。这两个都是对SomeModel.findOne()返回的Promise所传递的对

我面临内存泄漏问题,最近开始调试,解决了一些问题。但我似乎更关心对象引用和垃圾收集,在上面的代码示例中,
SomeModel.findOne
返回一个承诺,我将该承诺分配给一个新对象(浅拷贝)
appLogin
。我该不该把这个承诺复制下来?对于新对象的承诺引用非常困惑,垃圾收集器在转到下一个.then()之后会将该承诺视为垃圾吗?提前感谢。:)

分配不会导致进行浅拷贝。另外,无论是
login
还是
appLogin
都不是承诺。这两个都是对SomeModel.findOne()返回的Promise所传递的对象的引用。是的,这些都不是Promise,但我应该关心垃圾收集过程的引用吗?嗯,有些人更有资格回答,但据我所知,这里应该没有内存泄漏。如果有,那么即使不是大多数,也会有很多承诺链出现漏洞。
let appLogin = null;
    SomeModel.findOne({
            where: {id: req.user.id},
            attributes: ["id","property_id"],
            raw: true,
        })
        .then((login) => {
            if(!login){
                throw new CustomErrors.InvalidToken("ER401");
            }             
            appLogin = login; return null;
        }
        .then((nullRecieved) => {
            console.log(appLogin)   
        })
        .catch((error) => {console.log(error)})