現在、サーバーに保存されている製品情報にアクセスするために、Webショップアプリケーション用のJSクラスを作成しています。情報は非同期でロードする必要があります。このために私は使用しますdojo.xhrPost()
。このクラスの関数を書き直したいと思います。この関数はgetProductName(productId:int):String
、指定された製品IDの製品名を返します。関数はinternを使用しdojo.xhrPost()
ます。しかし、ロードしてエラーを発生させるために新しい関数を渡す必要があるため、ロードされた製品名を返す必要がありますdojo.xhrPost()
か?
この関数の使用法:他のJS関数はこれを呼び出して製品名をロードし、ページ全体をリロードせずにカートのWebページを更新します。エラー処理のためにいくつかの追加情報が転送されるため、返されるデータはJSON形式です(クライアント関数は、サーバー側でエラーが発生したかどうかを知る必要があります)。
関数のコードgetProductName(productId:int)
:
function getProductName(productId) {
dojo.xhrPost({
url: '/shop/dataProduct.php',
handleAs: 'json',
content: {productId:productId},
load: function(response, ioArgs) {
if (!response.error) {
// here I would like to return response.data to the caller of myObj.getProductName(productId)
} else {
// here I would like to return "error" to the caller of myObj.getProductName(productId)
}
return response;
},
error: function(response, ioArgs) {
// here I would like to return "error" to the caller of myObj.getProductName(productId)
return response;
}
});
}
使用法:
var productName = myObj.getProductName(5);