我从推入数组的遥远表中获取值:
function getrecords(base, view) {
var tab = [];
var jsonTab = {};
base('Table 1').select({
view: view
}).eachPage(function page(records, fetchNextPage) {
records.forEach(function(record) {
tab.push({
'Name':record.get('Name'),
'Notes': record.get('Notes')
});
});
//console.log(tab);
return tab;
});
}
现在,使用promiseJs我做了一个promise函数,因为调用是异步的:
function readRecords(base, view){
return new Promise(function(fulfill, reject){
getrecords(base, view, function (err, res){
if(err) reject(err);
else fulfill(res);
});
});
}
现在,我要做的就是使用该标签!但是,当我创建一个这样的var并对其进行控制台记录时:
var tabRecord= readRecords(base, view);
console.log(tabRecord);
这就是cmd中的结果:
承诺{_45:0,_81:0,_65:空,_54:空}
它是什么意思?为什么我没有显示该标签?为了获得函数的返回值,我应该怎么做?
谢谢大家
ps:我通过网站https://www.promisejs.org/帮助mysefl编写了承诺。
Getrecords应该返回一个承诺,所以我这样做了:
function getrecords(base, view) {
return new Promise(function(resolve, reject){
var tab = [];
base('Table 1').select({
view: view
}).eachPage(function page(records, fetchNextPage) {
records.forEach(function(record) {
//resolve(records);
tab.push({
'Name':record.get('Name'),
'Notes': record.get('Notes')
});
});
fetchNextPage();
resolve(tab);
reject("Nononono");
});
});
}
之后,我可以then
像下面这样调用后跟“ ”的方法:
getrecords(base, view).then(function(res){return res;}).then(function(res{tabToCSV(res)})
有效。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句