0

这是我的异步搜索功能。

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
        }
    });
}

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

我可以回来null......但是由于来电者期望得到一个承诺,我宁愿告诉他不能给予任何承诺。

4

1 回答 1

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();
        }
    });
}
于 2013-07-12T20:23:23.133 回答