Почему я получаю ошибку функции минус в облачном функциональном узле js?

#javascript #node.js #google-cloud-functions

#javascript #node.js #google-cloud-функции

Вопрос:

Я использую bignumber в nodejs для облачных функций с firebase.Я добавил BigNumber в конце, думая, что это может помочь.

 const BigNumber = require("bignumber.js").BigNumber;
let Price = new BigNumber(0);
let Fee = new BigNumber(0.15);
let FeePrice = new BigNumber(0);
let TotalPrice = new BigNumber(0);
const priceValue = json["value"];
Price = new BigNumber(priceValue);
FeePrice = Price.times(Fee).toFormat(2, 6);
TotalPrice = Price.minus(FeePrice);
 

Я получаю эту ошибку в журнале облачной функции TypeError:

Price.minus не является функцией

Комментарии:

1. Могу ли я узнать, что находится json в вашей Price = json["value"] строке?

2. это объект json

3. Итак, вы переходите Price от BigNumber к некоторому значению объекта JSON, что означает, что он больше не является экземпляром BigNumber.

4. вы правы. я обновил свой код и снова развернул, но все равно получаю ту же ошибку

5. я новичок в node и js, и я не знал, что вы можете использовать console typeof

Ответ №1:

Это typeof Price может быть строка. Поэтому его необходимо преобразовать в BigNumber . Вы можете использовать TotalPrice с самим статическим методом BigNumber. (благодаря вашим ответам на комментарии)

 TotalPrice = new BigNumber(Price).minus(FeePrice);