在此处输入代码我的promise语句在返回未定义的结果。我怎样才能从诺言访问数据并使用它?这是我的代码。这将返回并显示实时时间表,但我只是无法访问数据并使用它们。请帮助我访问数据。谢谢!
$("#btn").on('click', function () {
html2canvas($("#maintag"), {
onrendered: function (canvas) {
var myCanvas = canvas;
var initImage = myCanvas.toDataURL("image/png");
var dnldImage = initImage.replace(/^data:image\/[^;]/, 'data:application/octet-stream');
$("#btn").attr("download", "test.png").attr("href", dnldImage);
}
});
}).click();
答案 0 :(得分:0)
info
是未定义的,因为您应该在return
函数中添加getStopInfo
。
您应该发挥作用
function getStopInfo(StopId){
return mta.schedule(StopId).then(function (result) {
console.dir(result, {depth:null, colors:true});
return result;
});
}
答案 1 :(得分:0)
由于我不知道您使用的确切api以及mta.schedule如何准确返回promise数据...在此示例中我将其存根了...基本上,我认为您可能会考虑使用异步/ await函数设置...在这里查看此想法...
let Mta = require('mta-gtfs');
let mta = new Mta({
key: 'MY-MTA-API-KEY-HERE',
});
async function getStopInfo(StopId, callback){
try {
const info = mta.schedule(StopId)
callback(info)
} catch(error){
console.log(error)
}
}
getStopInfo(627, info => {
console.log('yep info is outside now', info)
})