我在durandal项目工作。
我使用插件对话框模块。
我想编写向用户显示消息的函数并返回对话框结果。
例如:
function isValidFunc() {
dialog.show(myHtmlPage).then(function validDialogClosed(result) {
return result;
}
}
var isValid = isValidFunc();
在我的示例中,函数 validDialogClosed 返回结果,但isValidFunc不返回任何内容!
我希望 isValidFunc 返回结果。
请不要回答我显示 isValidFunc 功能的对话框。我需要它来展示它。
感谢。
答案 0 :(得分:0)
你在这里遇到两个问题。
首先关闭isValidFunc并不返回任何内容。您的return语句只返回回调函数中的一个值,该函数未被使用。
其次,dialog.show()返回一个异步的promise。这意味着isValidFunc()将在执行回调函数之前返回。
isValidFunc()绝对可以显示对话框,但它无法直接返回结果。
可以做什么,就像这样返回承诺,你可以在完成时做点什么:
function isValidFunc() {
return dialog.show(myHtmlPage);
}
isValidFunc().then(function(dialogResult) {
//do something with dialogResult
});