萌新不是很懂这个异步 同步, 就是云函数返回的checkResponse.body 想保存再js的data里
但是拿到的是undefined, 查了半天 说是结果还没有返回来, 就想请问如何能再js 拿到这个返回值。
该怎么写。 这个promise 看了白天没太懂。求代码。谢谢。
云函数返回一个Promise对象,目的使让两个相互依存的异步操作按需要的顺序执行。Promise对象特点如下:
1.Promise对象状态不受外界影响,仅有resolve和reject的返回结果决定,一旦状态确定,就不能在改变。
2.resolve函数的作用:将promise对象的状态从pending变为resolved,将异步操作成功调用的结果,作为参数给then中的第一个函数;
3.reject函数的作用:将Promise对象的状态从 pending
变为 rejected,在异步操作失败时,并将异步操作报出的错误,作为参数传递给then中的第二个函数
4.promise一旦新建就会立即执行,无法取消,可以用then方法分别指定resolved状态和rejected状态的回调函数,将返回值输出,then可以采用链式写法(无线.then)
promise定义结构如下:
var promise= new Promise( function(resolve,reject){
if(){
resolve(value)
}else{
reject(err)
}
}).then({
function (value){},
function (err){}
}).catch()
注:promise的返回值只能在其内部使用,不能导出。
先理解下Promise:https://www.liaoxuefeng.com/wiki/1022910821149312/1023024413276544
然后再了解下日志:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/functions/logservice.html
调试下,你就知道问题出在什么地方了。