Ich habe ein Problem, ein Versprechen an meine $each
Schleife anzuhängen. getTemplate
ist eine asynchrone Funktion. Ich möchte alle Vorlagen innerhalb jedes Feeds, sammeln sie in getAppsTmp
Variable und fügen Sie sie unten ein. Im Moment ist die Variable danach leer.
var getAppsTmp
var promise = $.each(addons, function (i, addon) {
if (addon.isApp === true && addon.appLaunchUrl) {
console.log(addon)
var bestIcon = addon.icons.length - 1
getTemplate('app-link', function (tmp) {
getAppsTmp += tmp({
appId: addon.id,
appLaunch: addon.launchType,
appName: addon.shortName,
appUrl: addon.appLaunchUrl,
appIcon: addon.icons[bestIcon].url
})
})
}
})
$.when(promise).then(function() {
$(modalId + ' .content').html(getAppsTmp)
})
wenn ich auf diese Weise alles funktioniert, aber ich brauche sie alle in einem Rutsch anhängen:
getTemplate('app-link', function (tmp) {
getAppsTmp = tmp({
appId: addon.id,
appLaunch: addon.launchType,
appName: addon.shortName,
appUrl: addon.appLaunchUrl,
appIcon: addon.icons[bestIcon].url
})
$(modalId + ' .content').append(getAppsTmp)
})
Genau wie ein FYI - mit nativen (oder polyfilled) Promises macht der Code (meiner Meinung nach) noch sauberer - https://jsfiddle.net/b82z1fnz/ –