通过方法A调用异步方法B,B方法返回promise对象,为何不能直接在A方法内部直接使用, 而是一定要在外部调用A方法,才能使用then和catch
来源:6-1 异步编程解决方案Async Await
![](http://img1.sycdn.imooc.com/user/54584f6d0001759002200220-100-100.jpg)
愤怒的米饭
2020-06-29
在6-1节中, 模仿老师的代码, 通过foo2方法调用timeout方法.
result变量是调用异步方法timeout()获得的,
如果在foo2方法中选择return result变量, 并在foo2方法体外调用then和catch方法, 完全可以成功.
但是, 如果在foo2方法中直接通过result调用then和catch,则无法成功. 如下图:
写回答
1回答
-
这段代码中,foo2里的result对应的是上面resolve或者reject的参数,也就是success或者fail这样的字符串,字符串.then()是不可以的。
但是async函数会返回一个Promise对象,Promise对象就可以使用then方法了。
012020-06-30
相似问题