タイマーでpromiseに戻るとエラーが発生します.Canot read property'then'of undefined


例えば、set Intervalやset Timeoutでreturn new Promiseを呼び出して、この方法を呼び出すと、エラーが発生します.ウィジェットの中にCanot read property'then'of undefinedが報告されます.
 test: function () {
    setTimeout(()=>{
      return new Promise((resolve, reject) => {
        resolve(666)
      })
    },3000)
 },
 onShow: function () {
	 this.test().then(res =>{
		console.log(res)
	 })
 }
上記のようにプロミセを使ってエラーを報告します.タイマーをPromiseに入れるべきです.上記のコードは次のように修正されました.
 test: function () {
    return new Promise((resolve, reject) => {
      setTimeout(()=>{
        resolve(666)
         },3000)
    })
  },
 onShow: function () {
	this.test().then(res =>{
		console.log(res) // 3       666
	})
 }