收藏
回答

使用云托管,配置资源服用,小程序初始化wx.cloud.Cloud代码在开发者工具中失败?

使用微信云托管时,小程序一版在app.js的onLaunch方法里加下面初始化处理,就可以在各个页面上调用对应的云后台了。

// 云开发的初始化
    wx.cloud.init({
      env: '{微信云托管的环境ID}'
    });


如果配置资源服用,要调用其他小程序(小程序A)关联的云托管,在app.js的onLaunch方法里按照下面的写法,在实机上是正常的,通过app.cloud可以正常调研对于云后台的。(注:onLaunch需要加async)

const c1 = new wx.cloud.Cloud({
      resourceAppid: '{小程序A的AppID}',
      resourceEnv: '{微信云托管的环境ID}',
    });
    await c1.init();
    this.cloud = c1;


但是,在“微信开发者工具”上,这种写法却一直出错,控制台出了下面这样的错误消息而已。

TypeError: Cannot read property 'callContainer' of undefined


显然是没正常初始化,cloud是undefined得来的消息的。但是什么原因导致的呢?

虽然实机没问题,但是开发者工具不好使,开发起来是挺不方便的。

有没有了解的大牛啊,先谢过了

回答关注问题邀请回答
收藏

1 个回答

  • Nick
    Nick
    03-10

    突然发现,更新开发者工具后,问题自动消失了。感觉是开发工具的问题了。

    更新后版本是 1.06.2402021darwin-arm64。


    另外,ChatGPT也给回答了。大概代码如下:

    async和await的写法:

    async onLaunch() {
    	const c1 = new wx.cloud.Cloud({
            resourceAppid: 'abcdefg',
            resourceEnv: '1234567',
        });
        await c1.init();
        this.cloud = c1;
    }
    


    Promise的写法(不使用async和await):

    onLaunch() {
      const c1 = new wx.cloud.Cloud({
        resourceAppid: 'abcdefg',
        resourceEnv: '1234567',
      });
    
      c1.init()
        .then(() => {
          this.cloud = c1;
          // 在这里继续执行后续的逻辑
        })
        .catch(error => {
          // 处理初始化失败的情况
          console.error('Initialization error:', error);
        });
    }
    


    03-10
    有用
    回复
登录 后发表内容