我有以下 durendal 代码:
var variable = ko.observable("");
function activate(){
return myModel.doSomething(variable);
}
doSomething
定义如下:
function doSomething(variable){
if(someCondition)
return $.ajax(...).success(function(data){variable(data)});
variable(defaultValue);
return defaultValue;
}
someCondition==true
当使用 ajax 调用结果初始化变量时,此代码工作正常。当someCondition==false
activate 方法返回而变量未初始化时。
从我在文档中读到的内容来看,快乐的道路是有效的,因为 ajax 调用返回了一个承诺,但不是这种else
情况。
我试过这个:
function activate(){
return myModel.doSomething(variable).promise();
}
但我收到一个错误,说可观察对象没有promise
有意义的方法。
问题
如何让else
子句像 ajax 调用一样返回一个承诺?