Javascript 为什么不是';函数中可用的t参数
我意识到这可能是一个小学问题,但是 在下面的代码(不是所有代码)中,我将一个参数传递到下一个Javascript 为什么不是';函数中可用的t参数,javascript,Javascript,我意识到这可能是一个小学问题,但是 在下面的代码(不是所有代码)中,我将一个参数传递到下一个然后 .then(cursor => { const lastCursorIdx = cursor.length - 1; queryAfterCursor = cursor[lastCursorIdx]; return queryAfterCursor; }) .then(lastCursorResult => { console.log(lastCursorResult);
然后
.then(cursor => {
const lastCursorIdx = cursor.length - 1;
queryAfterCursor = cursor[lastCursorIdx];
return queryAfterCursor;
})
.then(lastCursorResult => {
console.log(lastCursorResult);
const runQuery = lastCursorResult => {
console.log(lastCursorResult);
}
runQuery();
})
在第二个中,然后
参数是lastCursorResult
当Iconsole.log
打开此方法时
console.log(lastCursorResult);
它会记录详细信息。但是,当我将它传递给另一个方法const runQuery
时,lastCursorResult
是undefined
我想知道为什么它不起作用?难道我不能再次传递参数并使用它吗?您正在用一个参数跟踪lastCursorResult
。您需要让函数不接受任何参数:
console.log(lastCursorResult);
const runQuery = () => {
console.log(lastCursorResult);
}
runQuery();
或传递参数的lastCursorResult
:
console.log(lastCursorResult);
const runQuery = lastCursorResult => {
console.log(lastCursorResult);
}
runQuery(lastCursorResult);
因为您通过定义一个同名参数来隐藏它,然后没有为该参数传递任何值。“当我将其传递给另一个方法时”-您不会传递它。您需要使用lastCursorResult:runQuery(lastCursorResult)调用runQuery,或者使runQuery成为一个没有参数的函数,这样它将在作用域中使用lastCursorResult^^^,例如,它是一个打字错误(投票关闭)。删除参数名(const runQuery=()=>{console.log(lastCursorResult);};
)或将其传递到runQuery
(runQuery(lastCursorResult);
)。我会选择选项A。“但是,当我将它传递给另一个方法const runQuery
”-您不会将它传递给runQuery
。。。您可以不带参数地调用它:runQuery()代码>明白了,有道理。我知道我会被否决,但对我所失去的东西的好奇心正在折磨着我。