时间:2019-05-03 来源:小程序工厂
王***:
promise
E***:
亲 有例子吗?感谢
平***:
promise只是写法上的改变,异步还是异步,使用参数的相关代码还是得写在回调函数中
第***:
同一个页面函数嵌套就行了,不同页面请参考app.js中userInfoReadyCallback的回调写法
E***:
亲求教 这样怎么写 f()方法 怎么返回
平***:
你的f函数res回调函数产生,就不能只接return,可以采用下面的方法:
function f(callback) {
getList({}, (res)=>{
callback(res)
}
}
// 使用f:
f((res)=>{
console.log(res);
});
平***: f函数中res由回调产生,就不能直接return,可以采用下面的方法:function f(callback) { getList({}, (res)=>{
callback(res)
}
}
// 使用f:f((res)=>{ console.log(res);});
ん***:
如果非要把一个异步方法改为同步的话,可以使用类似 while(true) 的方法来等待。但是不建议这么做,推荐使用 Promise。
E***:
非常感谢你 成功了 在请教个问题
如果这样写 这里该怎么返回 并且这个id是有值的 可以在下一步使用
平***:
当需要使用异步调用返回的数据时,相关的代码需要写到回调函数中,像这样:
function f(code, callback) {
WxLogin({code: code}, res=>{
GetList({id: res, res1 => {
callback(res1);
}
}
}
如果不喜欢上面这种嵌套的方式,可以采用promise将代码改造成login(...).then(getList).then(callback)这样的形式,但仍然还是异步调用,你应该还是没有正确理解异步回调的处理方法,此时不建议接触promise,它会让你更加一头雾水。