2017-05-12 10 views
0

私は機能的なJavascriptと約束を新しくしました。このコードは、this.writeDataToRealm(data.data)のコメントを解除するまで有効です。次に、私はこのエラーを受け取ります:未処理の約束拒否の可能性があります。未定義のプロパティを読み取ることができません

可能な未処理の約束拒否。定義されていないプロパティ 'writeDataToRealm'を読み取ることはできません

さらに処理するために関数にデータを送信するにはどうすればよいですか?

.then(function(response) { 
    if (response.status !== 200) { 
    console.log('Error Status Code: ' + response.status); 
    // you might want to `throw` here 
    } else { 
    return response.json().then(function(data) { 
     console.log(data); 
     return data.data; 
    }) 
    } 
}); 

Cannot read property 'writeDataToRealm' of undefinedに問題がある

:あなたはreturnにごcatchハンドラにバブルにない例外が発生しthenコールバックから内部の約束を忘れてしまったので、

... 
fetch(url, { 
    method: 'GET', 
    headers: { 
    'Accept': 'application/json', 
    'Content-Type': 'application/json', 
    Authorization: "Bearer " + token 
    }, 
    }).then(function(response) { 
    if (response.status !== 200) { 
     throw Error(response.statusText); 
    } else { 
     return response.json().then(function(data) { 
      console.log(data); 
      return data.data; 
     }) 
     } 
    }).then(data => { 
     this.writeDataToRealm(data.data) 
    }, err => { 
     console.log('Fetch Error: ', err); 
    }); 

    } 

    writeDataToRealm(data) { 
    console.log(data[0]); 
    realm.write(() => { 
     realm.create('Student', {id: data[0].kp_ID, bb_first_name: data[0].kp_ID}); 
    }); 
    } 

答えて

2

unhandled rejectionですthisが期待したインスタンスではありません。How to access the correct this/context inside a callback?を参照してください。最も簡単な解決策は、コールバックに矢印関数を使用することです。

… 
.then(data => { 
    this.writeDataToRealm(data) 
}, err => { 
    console.log('Fetch Error: ', err); 
}); 
+0

あなたのsugjestedの変更を反映するために自分のオリジナルコードを編集しました。 (ID:12): 未定義のプロパティ '0'を読み取ることができませんTypeError:未定義のプロパティ '0'を読み取れませんDatabase.writeDataToRealm(/ app/classes) /database.map?platform=ios&runModule=false&entryModuleOnly=true&hot=true:89:23) at eval(/app/classes/Database.map? – AdamG

+0

これは別のエラーです。これは 'writeDataToRealm'メソッドを正常に呼び出すためです。 – Bergi

+0

ありがとうございましたが、 "私が1つの.dataプロパティへのアクセスをあまりにも多く呼び出すと思います"とはどういう意味なのか分かりません。それについてアドバイスしますか? – AdamG

関連する問題