注:このシナリオの記述方法が完全に間違っている場合、httpリクエストでjavascript関数のコールバックを正しく使用する方法
私は2つのjavascriptファイルを持っています。私は最初のファイル(クライアント側)の関数を呼び出して、2番目のファイルの関数を呼び出し、2番目のファイルの関数のコールバックを最初のファイルのresponse.success/.error
の目的で使用しています。
それはここでは意味がない場合は、いくつかのコードは次のとおりです。
注:これは解析のクラウド機能を使用して一時的に行われています。それが重要かどうかはっきりしない情報が必要な場合はお知らせください。
まずファイル:
Parse.Cloud.define("methodName", function(request, response) {
...
secondFile.myFunction(param1, {
stuff: request.params.stuff,
}, function (err, res) {
if (err) {
response.error(err);
} else {
response.success(res);// I'm assuming this is going to the hardcoded "yes." from httpRequest on second file's function
}
});
});
セカンドファイル:私のクライアントで
myFunction: function(param1, properties, callback) {
if (!param1) return callback(new Error("Helpful error message"));
var headersForReq = {
...
};
var bodyForReq = ...; // the properties properly parsed
Parse.Cloud.httpRequest({
method: 'PUT',
url: ...,
headers: headersForReq,
body: bodyForReq,
success: function (httpResponse) {
callback(null, 'yes'); // the hardcoded "yes" i referred to
},
error: function (httpResponse) {
callback(httpResponse.status + httpResponse.error);
}
});
}
、コードは成功として処理(エラーがスローされたか、戻されていない)が、私は印刷するときされますそれは(はい)ではなく、(null)として渡る価値を出す。
ここでは何が起こっていますか? (サイドノート、httpRequestは現在何もしていません。サードパーティのAPIに送信されているため、要求が適切に送信されているかどうかを確認するのは難しいです)。
2番目のファイルのメソッドが正しく呼び出されていることはわかります。だから、私はあなただけだと思うmodule.exports
または
どのように正確に値を「プリントアウト」しますか?クライアント上の – Pointy
このParse "PFCloud"関数を呼び出しています。それはオブジェクト(あなたが最初の関数のresponse.successに入れたもの)を返します。エラーがあればエラーを返します。たとえば、最初のメソッドで 'response.success( 'yes')'を 'response.success(res)'の代わりにハードコードすると、クライアント上のコンソールは返されたオブジェクトとして 'yes'を出力します – gadu
クライアントでは、応答値が表示されたり、例外が発生したりする – ChunTingLin