最近 Autodesk Forge 颁布了版号 2.15 的 Viewer,同时在 Viewer.loadExtension
这个函数的回传值上有重大的变更。先前的版本是回传布林值(Boolean),从 2.15 版开始回传 ES2015(ES5) 的 Promise,如果您以前没接触过 Promise 可以参考 Google 的这篇文章,下方两个版本的比照:
// 板号 2.14 以及以前的版本
// Synchronous code, 从版号 2.15 开始不被支持了
var res = viewer.loadExtension('MyExtensionID')
if (res) {
// 扩展载入成功
var myExtension = viewer.getExtension('MyExtensionID')
myExtension.callMethod(...)
}
// 版号 2.15 及以后的版本 - ES5
viewer.loadExtension('MyExtensionID').then(
function(myExtension) {
myExtension.callMethod(...)
}, function (err) {
console.log('扩展载入失败: ')
console.log(err)
})
// 版号 2.15 及以后的版本,使用 ES6/async
try {
const myExtension = await viewer.loadExtension(
'MyExtensionID')
myExtension.callMethod(...)
} catch (ex) {
console.log('扩展载入失败: ')
console.log(err)
}