Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.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 包含承诺调用的函数中的参数范围_Javascript_Promise - Fatal编程技术网

Javascript 包含承诺调用的函数中的参数范围

Javascript 包含承诺调用的函数中的参数范围,javascript,promise,Javascript,Promise,固定参数(一个一旦传递给函数就不会更改的参数)是否保留在函数内承诺调用的范围内。例如,我可以在下面的函数中信任x吗 someFunc(1); someFunc(2); function someFunc(x){ somePrmsFunc.then(function(){ somePrmsFunc.then(function(){ if (x == 1) alert(x); }); }); }

固定参数(一个一旦传递给函数就不会更改的参数)是否保留在函数内承诺调用的范围内。例如,我可以在下面的函数中信任x吗

someFunc(1);
someFunc(2);

function someFunc(x){
    somePrmsFunc.then(function(){
        somePrmsFunc.then(function(){
            if (x == 1)
                alert(x);
        });
    });
}

由于
x
不是对象,因此您可以信任
x

函数somePrmsFunc(){
返回新承诺(功能(解决、拒绝){
设置超时(解析,1000);
});
}
函数someFunc(x){
somePrmsFunc()。然后(函数(){
console.log('promise 1 resolved',x);
somePrmsFunc()。然后(函数(){
log('nestedpromise resolved',x);
如果(x==1)
警报(x);
});
});
}
someFunc(1);

someFunc(2)
因为
x
不是对象,所以您可以信任
x

函数somePrmsFunc(){
返回新承诺(功能(解决、拒绝){
设置超时(解析,1000);
});
}
函数someFunc(x){
somePrmsFunc()。然后(函数(){
console.log('promise 1 resolved',x);
somePrmsFunc()。然后(函数(){
log('nestedpromise resolved',x);
如果(x==1)
警报(x);
});
});
}
someFunc(1);

someFunc(2)
由于
x
不是对象,因此您可以信任
x
是,因为参数不会被重新分配,如果它是原语,则初始调用时它将始终与
someFunc
中的任何异步调用时相同。(如果它是一个对象,它可能会同时在外部发生变异)因为
x
不是一个对象,是的,您可以信任
x
是的,因为参数不会被重新分配,如果它是一个基元,它在初始调用时将始终与
someFunc
内部的任何异步调用时相同。(如果它是一个对象,它可能同时在外部发生变异)