【发布时间】:2017-09-29 11:51:38
【问题描述】:
我有一个函数,其中进一步的执行由函数本身决定。需要使用 Promise,因为它是一个异步函数。问题是即使在解决之后它仍会继续执行。
我的代码:
function initApp () {
token = getToken () ;
if ( token == null ) {
resolve ('Not Found') ;
} else {
// ... async process
if ( tokenStatus == "true" ) {
resolve ('Welcome') ;
} else {
resolve ('Invalid') ;
}
}
}
let init = new Promise ( ( resolve , reject ) => {
initApp ();
});
init.then((successMessage) => {
alert ( successMessage ) ;
}
我收到一个未定义的解析错误。另外,早些时候我没有使用 else 时,即使遇到 resolve,它也会继续执行。这样做的正确方法应该是什么?
【问题讨论】:
-
你知道
let init =正在破坏function init对吧? -
也许 this fiddle 有帮助 - 我添加了一些额外的行,以便您获得更多报酬 - 虽然 jsfiddle.net/dLwL424n/1 可能有帮助,但我闻到了
//async process的问题,然后是 @987654327 的同步测试@ -
不像那个人 ;-)
-
我正在拉你的链 :p 但看到更新的小提琴 - 我怀疑你仍然会遇到提到的问题
-
顺便说一句,在实际功能中,它是initApp
标签: javascript jquery promise