0

您好,我正在为特定工作寻找模式;

假设我在带有 DOM 的页面中找到标题

如果找到标题,则将其放入 var title 如果 var title 仍然为空,则尝试下一个函数 如果 var title 仍然为空,则尝试下一个函数

那么有没有更好的方法

// Find Title
output.title = $('title').text();

if (null(output.title)) {
    output.title = second try
};

if (null(output.title)) {
    output.title = 3rd try
};

etc ? 
4

1 回答 1

1

我的版本使它更具可扩展性和逻辑性。使用数组和 while 循环(使用 async 模块):

var functions = [function1, function2, function3]
var i = 0
var output.title // to deal with scope issue of output.title only being defined inside whilst. Could have put output.title as argument for callback
async.whilst(
     function () { return i < functions.length && !output.title },
     function (callback) {
          output.title = functions[i]
          i++
          callback()
}, function () {
     if (output.title) {
         //have title
     }
     else {
         // no title was found
     }
})
于 2013-03-26T10:20:40.347 回答