[英]how to pass some code to a function that accepts callback?
我有一個來自營銷提供商的 javascript function 需要在從購物車中刪除產品時執行.....
當我從購物車中刪除產品時,必須執行此代碼:
_ra.removeFromCartInfo = {
"product_id": 133,
"quantity": 1,
"variation": false
};
if (_ra.ready !== undefined) {
_ra.removeFromCart(
_ra.removeFromCartInfo.product_id,
_ra.removeFromCartInfo.quantity,
_ra.removeFromCartInfo.variation,
function() {
// code that need to execute after the removeFromCart finished
}
);
}
removeFromCart 接受一個回調 function,我需要在父 function removeFromCart 執行后添加一些代碼來執行。
我創建了自己的 function (_rb_remove_from_cart) - 以避免代碼重復 - 我將上面的代碼放入其中:
function _rb_remove_from_cart(product_id, qty, variation) {
var _ra = _ra || {};
_ra.removeFromCartInfo = {
"product_id": product_id,
"quantity": qty,
"variation": variation
};
if (_ra.ready !== undefined) {
_ra.removeFromCart(
_ra.removeFromCartInfo.product_id,
_ra.removeFromCartInfo.quantity,
_ra.removeFromCartInfo.variation,
function() {
// code that need to execute after the removeFromCart finished
}
);
}
}
當我執行 function - 我需要的地方 -
// the function that removes the element from cart href="javascript:remove_cart_element( ... )
function remove_cart_element(product_id, qty, variation, url) {
// code that need to execute in callback function
...
_rb_remove_from_cart(product_id, qty, variation);
}
我不知道如何將代碼傳遞給 function _rb_remove_from_cart 以在回調中執行。
我應該用代碼創建另一個 function .... 然后作為參數傳遞給 function _rb_remove_from_cart?
您不能將可執行代碼直接傳遞給 function,但是,您可以將其傳遞給另一個 function。
function sayHello(param1, param2) {
alert(`Hello! Param1=${param1}, param2=${param2}`);
}
function _rb_remove_from_cart(product_id, qty, variation, callback) { // callback is sayHello
...
_ra.removeFromCart(
_ra.removeFromCartInfo.product_id,
_ra.removeFromCartInfo.quantity,
_ra.removeFromCartInfo.variation,
callback
);
}
function remove_cart_element(product_id, qty, variation, url) {
_rb_remove_from_cart(product_id, qty, variation, sayHello.bind(this, param1, param2));
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.