模式如果失败1尝试2如果失败尝试3为nodejs

时间:2013-03-26 09:59:32

标签: node.js

你好我找到一个特定工作的模式;

让我说我在带有DOM的页面中找到一个标题

如果找到了标题,则将其放入var标题 如果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 ? 

1 个答案:

答案 0 :(得分:1)

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

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