【发布时间】:2017-02-02 14:20:00
【问题描述】:
我一直在尝试理解 async、promise 等,并且我认为我对它有了基本的了解,但我没有得到我期望的结果。
我有一个 HTML 表格,包含以下内容:
<table data-bind="visible: viewPrincipal()">
viewPrincipal() 是一个应该返回 true 或 false 的函数。如果 viewPrincipal() 只包含 return false 或 return true,这在最基本的级别上确实有效。但我想做的是调用一个异步函数来从那里获取真值或假值。
function viewPrincipal() {
console.log("Seeing if person is in principal group");
return IsCurrentUserMemberOfGroup("Principal Members", function (isCurrentUserInGroup) {
console.log(isCurrentUserInGroup);
return isCurrentUserInGroup;
});
}
console.log 可以正常工作,并按照我的预期返回 true 或 false。但我希望父 viewPrincipal() 函数返回该 true 或 false 值,而我得到的只是“未定义”。
我明白为什么会发生这种情况 - IsCurrentUserMemberOfGroup() 函数需要一些时间才能完成 - 但我不知道如何解决它。我知道如何将函数链接在一起,但是当我尝试使用诸如 knockout.js 之类的东西来确定表是否应该可见时,我不知道如何链接。
谁能帮忙?
【问题讨论】:
标签: javascript asynchronous knockout.js