回调未在 javascript 中执行
Callback not executing in javascript
我写了一个应该执行回调的方法,但回调没有被执行:
buildTable('lt', 'viewltDetails', commonTireColumns, function(error) {
if(error) {
console.log(error);
} else {
console.log('calculating');
calculatedPricing();
}
});
我的 buildTable 函数 - 它实际上使用 aldeed-tabular 包创建了一个数据表:
function buildTable(tblName, detailsBtn, columnDetails) {
var columns = [];
for(var key in columnDetails) {
columns.push({
data: columnDetails[key].data,
title: columnDetails[key].title,
width: columnDetails[key].width
});
};
columns.push({
title: "Quantity",
tmpl: Meteor.isClient && Template.itemQuantityCell,
width: "2%"
});
columns.push({
title: "Details",
tmpl: Meteor.isClient && Template[detailsBtn],
});
columns.push({
title: "Action",
tmpl: Meteor.isClient && Template.addToCartCell,
});
TabularTables[tblName] = new Tabular.Table({
name: tblName,
changeSelector: function(selector, userId) {
return selector;
},
collection: Products,
pub: "tabular_Products",
columns: columns,
extraFields: ['priceFET', 'invoicePrice', 'category']
})
};
buildTable
函数工作正常,但它没有执行 console.log('calculating')
和 calculatePricing()
命令,尽管该函数没有抛出任何错误。
我的 calculatePricing 函数如下所示:
calculatedPricing: function() {
var price = 300;
return price;
};
有人可以帮忙吗?谢谢!!
您需要为 buildTable 函数的回调添加一个参数
变化:
function buildTable(tblName, detailsBtn, columnDetails) {
至:
function buildTable(tblName, detailsBtn, columnDetails, callback) {
然后,调用它:
callback(someError);
请这样尝试。
你添加了一个回调函数,但你没有在参数中使用它,所以你永远不会在你的函数中调用它。
function buildTable(tblName, detailsBtn, columnDetails, callback) {
//your code here
if(typeof callback === "function"){
callback();
}
}
我写了一个应该执行回调的方法,但回调没有被执行:
buildTable('lt', 'viewltDetails', commonTireColumns, function(error) {
if(error) {
console.log(error);
} else {
console.log('calculating');
calculatedPricing();
}
});
我的 buildTable 函数 - 它实际上使用 aldeed-tabular 包创建了一个数据表:
function buildTable(tblName, detailsBtn, columnDetails) {
var columns = [];
for(var key in columnDetails) {
columns.push({
data: columnDetails[key].data,
title: columnDetails[key].title,
width: columnDetails[key].width
});
};
columns.push({
title: "Quantity",
tmpl: Meteor.isClient && Template.itemQuantityCell,
width: "2%"
});
columns.push({
title: "Details",
tmpl: Meteor.isClient && Template[detailsBtn],
});
columns.push({
title: "Action",
tmpl: Meteor.isClient && Template.addToCartCell,
});
TabularTables[tblName] = new Tabular.Table({
name: tblName,
changeSelector: function(selector, userId) {
return selector;
},
collection: Products,
pub: "tabular_Products",
columns: columns,
extraFields: ['priceFET', 'invoicePrice', 'category']
})
};
buildTable
函数工作正常,但它没有执行 console.log('calculating')
和 calculatePricing()
命令,尽管该函数没有抛出任何错误。
我的 calculatePricing 函数如下所示:
calculatedPricing: function() {
var price = 300;
return price;
};
有人可以帮忙吗?谢谢!!
您需要为 buildTable 函数的回调添加一个参数
变化:
function buildTable(tblName, detailsBtn, columnDetails) {
至:
function buildTable(tblName, detailsBtn, columnDetails, callback) {
然后,调用它:
callback(someError);
请这样尝试。 你添加了一个回调函数,但你没有在参数中使用它,所以你永远不会在你的函数中调用它。
function buildTable(tblName, detailsBtn, columnDetails, callback) {
//your code here
if(typeof callback === "function"){
callback();
}
}