1
データを取得するという約束を返す次の関数があります。私はrequest npmモジュールを使用しています。npmリクエストパッケージで全身になっていない
SyntaxError: Unexpected token u in JSON at position 0
私の体は未定義として返されたときに起こります。私は私の約束を解決するとき
let getData = function (user) {
return new Promise(function (resolve, reject) {
let url = 'https://someurl.com/' + user;
request(url, function (error, res, body) {
if (error) reject(error);
try{
resolve(cleanData(JSON.parse(body).items))
}catch(e){
console.log(body)
console.log(url)
console.log(e);
}
})
})
}
、私は時々このような何かを得ます。しかし、他の時間、私はまた、このような何かを得る:
SyntaxError: Unexpected token f in JSON at position 11203
そして、他の回(回のほとんどを)、それは完全に通過します。
私はデバッグ中にこれを二重チェックすることができましたが、不完全なボディを取得することがあるようです。私は、ソースURLの本文が不完全ではないという事実を知っています。私はブラウザで直接URLに行き、jsonが完全で有効であることを確認してこれを確認しました。
何が起こっていますか? request
関数のコールバックは、レスポンスを使用する準備ができている場合にのみコールされることを理解しています。