告诉函数调用者“很好”,无法满足承诺

时间:2013-07-12 19:29:23

标签: javascript winjs promise

这是我的异步搜索功能。

function searchAsync(searchText) {
    return new WinJS.Promise(function (complete) {
        if (searchText.length > 2) {
            // Asynchronously query the API with the search text
        } else {
            // Can't return a promise, since 'searchText' is too short
        }
    });
}

假设呼叫者没有提供超过2个字符的searchText,我怎么能告诉他他必须提供更长的搜索文本?

我可以回复null ......但是,当打电话者希望得到一个承诺时,我宁愿告诉他没有任何承诺。

1 个答案:

答案 0 :(得分:3)

添加错误处理程序,并在Promise处于错误状态时调用它。

function searchAsync(searchText) {
    return new WinJS.Promise(function (complete, error) {
        if (searchText.length > 2) {
            // Asynchronously query the API with the search text
            complete(results);
        } else {
            // Can't return a promise, since 'searchText' is too short
            error();
        }
    });
}