Stack Overflow Asked by goxarad784 on December 18, 2020
I was trying to use an if clause like this:
if(await database.getValue("SDA").toUpperCase() == "AP"){
...
I got an error:
TypeError: database.getValue(…).toUpperCase is not a
function
However when I change the above if clause to
let check = await database.getValue("SDA")
if(check.toUpperCase() == "AP"){
.....
It works fine.
Why does this happen in Nodejs?
Property access (.
) has higher operator precedence (20) than await
(17). Your current code is equivalent to:
if(await (database.getValue("SDA").toUpperCase()) == "AP"){
because the .
s get chained together before the await
tries to resolve the expression on the right - which doesn't work because the getValue
call returns the Promise.
You could also fix it by grouping the await getValue
call in parentheses:
if((await database.getValue("SDA")).toUpperCase() == "AP"){
Or by using a regular expression to get around the ==
operator precedence (see revision history, I wouldn't recommend it, it's very weird).
Personally, I'd prefer your original code of extracting it into a variable first, it's a bit more readable
Correct answer by CertainPerformance on December 18, 2020
try this shape if((await database.getValue("SDA")).toUpperCase() == "AP"){}
or refactor code like this
try {
const value = await database.getValue("SDA")
if(!value) return // what you ned
if (value === 'AP'){
// do thomthing
}
} catch (e) {
// handle with error
}
Answered by Mohammed_Alreai on December 18, 2020
1 Asked on October 13, 2020 by knguyen
1 Asked on October 11, 2020 by user12344
3 Asked on October 11, 2020 by reizo
1 Asked on October 10, 2020 by gonzalo-polo
2 Asked on October 9, 2020 by nguyenvivian
0 Asked on October 8, 2020 by paul-martnez-llerena
2 Asked on October 8, 2020 by vldcndn
1 Asked on October 7, 2020 by solar
1 Asked on October 7, 2020 by theoriginof3
1 Asked on October 7, 2020 by user1999453
3 Asked on October 7, 2020 by deitch
2 Asked on October 6, 2020 by raj-endla
0 Asked on October 6, 2020 by madara
1 Asked on October 3, 2020 by singh
0 Asked on October 2, 2020 by turqay-umudzade
3 Asked on October 1, 2020 by pythoncreator
2 Asked on October 1, 2020 by user716255
1 Asked on September 30, 2020 by defarm
Get help from others!
Recent Questions
Recent Answers
© 2022 AnswerBun.com. All rights reserved. Sites we Love: PCI Database, MenuIva, UKBizDB, Menu Kuliner, Sharing RPP