2016-10-16 6 views
1

私は私が保存している2つのオブジェクトを持っています。しかし、私はオブジェクトの1つに参照を保存する(それを呼び出すことができます)(b)ので、最初に 'a'を保存してから、保存が完了したら、参照を設定した後にオブジェクト 'b'を保存します適切なフィールドに入力します。しかし、response.success行がヒットしているように見えますが、成功/エラー関数は呼び出し元ではトリガーされません。それはちょうどハングアップし、タイムアウトします。入れ子/連鎖保存で構文解析なし応答

Parse.Cloud.run('createObject', params).then( 
    (success) => { //neither are called, timeout results 
     console.log("Success!"); 
    }, (error) => { //neither are called, timeout results 
     console.log("Error!"); 
    } 
); 

応答が今、私はバッチのような何かをすれば保存し、持っている

newA.save().then(function(objA) { 
     newB.set('refA', objA); 
     return newB.save(); 
    }, function(error) { 
     response.error(
      utils.sformat(
       'Error saving new A with params {1}: {0}', 
       JSON.stringify(request.params), 
       JSON.stringify(error) 
      ) 
     ); 
    }).then(function(objB) { 
     response.success({ 
     b: objB 
     }); 
    }, function(error) { 
     response.error(
      utils.sformat(
       'Error saving new B with params {1}: {0}', 
       JSON.stringify(request.params), 
       JSON.stringify(error) 
      ) 
     ); 
    }); 

に送信されないことになり「CREATEOBJECT」からのコードスニペットを次のように呼び出し側のコードが見えますobjectAとobjectBの配列、そしてParse.Object.saveAllを呼び出すと、それは通過し、応答があります...しかし、私はその参照を設定したい場合、それを正確に使うことはできません。私は、セーブがそのように連鎖/ネストされているときにレスポンスが送られない理由について困惑しています。

私が持っている最大の問題は、オブジェクトが正しく作成され、100%正しく正しく保存されることです。だから私は本当になぜこのコードがハングアップするのか分からない。

編集:私は言いましたが、objectAにはアフターセーブトリガーがあります。しかし、実際には、いくつかのテスト行をプリントアウトし、それを無効にすることは何も変更していないように見えます。

+0

Parse.Cloud.run()に渡される最初のパラメータはStringでなければなりません。 'createObject'はどのような型ですか? –

+0

申し訳ありませんが、文字列です。コマンドは正常に動作します。すべてうまく動作します。オブジェクトは両方とも正しく作成され、保存されます。唯一の問題は、発信者が応答を受信しないことです。 –

答えて

1

実際に動作します。問題は、返す前にオブジェクトをフォーマットするために作られたresponse.success呼び出し内の関数があったが、私がアクセスしようとしていたもののためにnullpointexceptionを取得していたことだった。私は冗長なログを有効にしなかったので、パーズはこれが起こっているとは一度も言わなかった。

上記のコードは正常に動作します。