【求助】关于动态加载prefab资源的问题

`start: function () {
cc.log(‘start’);

   cc.loader.loadRes("123", function (err, prefab) {
        this.newNode = cc.instantiate(prefab);
         
        cc.director.getScene().addChild(this.newNode);
        this.newNode.setPosition(cc.v2(100,100));
          cc.log(this.newNode.getPosition());
    });
  cc.log(this.newNode.getPosition());

},`

cc.loader内部的log就能获取到newNode的坐标,cc.loader外部的就不行,
报的错:TypeError: this.newNode.getPosition is not a function,不知道问题出在哪里,是否是我写错了?
对着官方文档的例子写的。
newNode我已经声明为全局了,还是 cc.loader.loadRes(“123”, function (err, prefab)中的
prefab要传一个参数,形参里面的err是什么意思?

你應該要先確認一下,
你的prefab是否有加載成功。
第一先判斷 err,err 是一個字串,也就是錯誤訊息
第二判斷載入的型態是不是 prefab

cc.loader.loadRes("123", function (err, prefab) {

    //加入下面這兩行進行判斷
    if( err ) { cc.log( '加載失敗, ' + err ); return; }
    if( !( prefab instanceof cc.Prefab ) ) { cc.log( '加載資源成功, 但該對象不是Prefab' ); return; }

    this.newNode = cc.instantiate(prefab);

    cc.director.getScene().addChild(this.newNode);
    this.newNode.setPosition(cc.v2(100,100));
      cc.log(this.newNode.getPosition());
});

loadRes应该是异步的吧,也就是主loader之外的 cc.log(this.newNode.getPosition());先执行,
loader内的 cc.log(this.newNode.getPosition());后执行。