Как использовать большие числа в угловых 5+? - PullRequest
0 голосов
/ 05 сентября 2018

Я использую Angular 5 с .Netcore 2.0. Я использую контроллер API для обработки твитов (LinqToTwitter). Твиты приходят через мою машинопись с контроллера, все отлично, кроме statusID, длина которого 19 цифр.

Значение statusID должно быть: XXXXXXXXXXXXXXXX573

но он набирает скрипт как: XXXXXXXXXXXXXXXX600

Контроллер API:

[HttpPost("[action]")]
public async Task<Search> GetAllTweetsByNamePost([FromBody] SearchQuery searchQuery)
{
    searchVal = searchQuery.Name;
    Twitter twit = new Twitter();
    twit.Initialise();
    var t = await twit.Fetch(searchVal, 50, true, SearchType.Search);
    return t[0];
}

Когда я проверяю идентификатор Status в контроллере, он показывает правильный идентификатор, но Но время, которое он достигает TS statusID, отличается, и в числах есть образец.

первые 16 цифр правильные и последние 3 приращения на 100, например

XXXXXXXXXXXXXXXX100 XXXXXXXXXXXXXXXX200 XXXXXXXXXXXXXXXX300

В контроллере Api я использую LinqToTwitter Status object. Тип свойства в Status object является общедоступным ulong SinceID { get; set; }, и я установил свойство модели TS: statusID: any;

getSocialDataTwitter(searchQuery) {
    const headers = new HttpHeaders().set('content-type', 'application/json');
    return this.http.post<LeftOperatorPaneltwitter>(this.baseUrl + 'api/OperationData/GetAllTweetsByNamePost', '{"Name":"' + searchQuery + '"}', { headers }).subscribe(result => {
      this.tweets = result;
      result.statuses.forEach(search => {
        console.log(search.statusID + ' This is my Status ID');
      })
    }, error => console.error(error));
  }

1 Ответ

0 голосов
/ 05 сентября 2018

Javascript не может обрабатывать числа такой длины. Согласно this максимальное безопасное целое значение равно: 9007199254740991. Я бы предложил представить ваш идентификатор как string.

...