0

こんにちは、特定の仕事のパターンを見つけています。

DOMを使用してページでタイトルを検索するとします

タイトルが見つかった場合は、それをvar titleに入れます。vartitleがまだ空の場合は、次の関数を試してください。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ループを使用する(非同期モジュールを使用する):

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 に答える