我有一个奇怪的场景,我不知道是什么造成了这种情况。 我有一个函数,它返回一个承诺和链,然后'然后'方法。 在then方法中,我可以访问其中一个外部变量,但另一个是未定义的。
我认为我可能会在'然后'中使用该名称。函数和由于提升值是未定义的,但没有。
这是我的案例的简化版本,想知道可能导致这种情况的原因:
class MessageSender {
constructor(){
}
sendMessage(message, options) {
return somethingThatReturnPromise()
.then(function (response) {
// parameter 'message' is object as it should be,
// but'options' is undefined.
return response;
})
return promise;
}
}
由于
答案 0 :(得分:0)
似乎工作正常。
function sendMessage(message, options) {
return somethingThatReturnPromise()
.then(function (response) {
console.log('message: ' + message);
console.log('options: ' + options);
return response;
});
}
function somethingThatReturnPromise(){
return new Promise(function(resolve, reject){
setTimeout(function(){
resolve();
}, 100);
});
}
console.log('Starting...');
sendMessage('THE MESSAGE', 'THE OPTIONS').then(function(){
console.log('All done.');
});
返回
me@pc:~/dev/test$ node asdf.js
Starting...
message: THE MESSAGE
options: THE OPTIONS
All done.