サーバーからの応答は、その contextID で以前にデータを正常に保存したにもかかわらず、空の結果を返します。ほとんどの場合、json データが返されますが、その間にpopulateFromBackend()関数に直接行くのではなく、createNewGameAsync()関数につながる空の文字列が返されることがあります。グリッチのhttps://glitch.com/edit/#!/panoramic-tendencyプロジェクトからバックエンドを作成しています。
loadData: function () {
var contextID = FBInstant.context.getID();
console.log('loadData from ' + contextID);
FBInstant.player.getSignedPlayerInfoAsync(contextID)
.then(function (signedPlayerInfo) {
var url = 'https://panoramic-tendency.glitch.me' + '/get-match'
var sig = signedPlayerInfo.getSignature();
var method = 'POST'
var payload = { 'signature': sig };
return req(url, method, payload);
})
.then(function (result) {
if (result.empty) {
return this.createNewGameAsync();
} else {
return Promise.resolve(result.data);
}
}.bind(this)).then(function (backendData){
this.populateFromBackend(backendData);
}.bind(this))
.catch(function (error) {
this.displayError(error);
}.bind(this));